題目鏈接:
http://www.shiyanbar.com/ctf/1854
分析:
- 打開(kāi)提供網(wǎng)站 , 發(fā)現(xiàn)頁(yè)面中提示 :
There is no martial art is indefectible, while the fastest speed is the only way for long success.>>>>>>
----You must do it as fast as you can!----<<<<<<
沒(méi)有武術(shù)的不敗,而最快速度是長(zhǎng)期成功的唯一途徑。>>>>>>
----你必須盡你所能的快!---- <<<<<<
- 查看網(wǎng)頁(yè)源碼 , 發(fā)現(xiàn)結(jié)尾處有一段注釋 :
<!-- please post what you find with parameter:key -->
- 提示讓我們查看"響應(yīng)頭" , 并將數(shù)據(jù)以POST的形式發(fā)送 :

Paste_Image.png
在響應(yīng)頭中發(fā)現(xiàn)了KEY, 看起來(lái)像是一個(gè)Base64編碼, 解碼后發(fā)現(xiàn)是 : "P0ST_THIS_T0_CH4NGE_FL4G:FD13AeAje", 多次嘗試后發(fā)現(xiàn), ':'后面的數(shù)據(jù)是隨機(jī)生成的
嘗試是用Chrome瀏覽器的PostMan插件進(jìn)行Post方式提交 :
(也可以利用其他的工具 : 火狐/自定義相應(yīng)頭是用nc進(jìn)行提交/利用Python腳本)但是并沒(méi)有出現(xiàn)結(jié)果 , 又想到剛才的提示中提到 , 要盡可能得快速提交 , 因此開(kāi)始寫(xiě)腳本 :
# coding:utf8
import requests
import base64
url = "http://ctf4.shiyanbar.com/web/10.php" # 目標(biāo)URL
s = requests.Session() # 獲取 Session
response = s.get(url) # 打開(kāi)鏈接
head = response.headers # 獲取響應(yīng)頭
flag = base64.b64decode(head['flag']).split(':')[1] # 獲取相應(yīng)頭中的Flag
print flag # 打印Flag
postData = {'key': flag} # 構(gòu)造Post請(qǐng)求體
result = s.post(url=url, data=postData) # 利用Post方式發(fā)送請(qǐng)求
# (注意要在同一個(gè)Session中 , 有的時(shí)候還需要設(shè)置Cookies , 但是此題不需要)
print result.text # 打印響應(yīng)內(nèi)容
答案:
CTF{Y0U_4R3_1NCR3D1BL3_F4ST!}
知識(shí)點(diǎn):