前言
希望自己能够更加的努力,希望通过多刷大赛题来提高自己的知识面。(ง •_•)ง
easy_tornado
进入题目
看到render就感觉可能是模板注入的东西
hints.txt给出提示,可以看到url中的filehash
呢么意思就是如果知道cookie_secret的话,再结合md5的filename就可以读到/flllllag了把
其实到这里我就没什么思路了,对于render肯定存在模板的问题,百度了一下标题tornado
一搜,render组合tornado,全是这道题的题解,我惊了。。那就看着WP来复现把,而不是自己做出来。。。
随便删除了filehash后,跳到了这个页面。
可以看到msg参数,传入了Error,页面就显示Error,通过一般常用的{{}}来测试
通过查阅Tornado官方文档可以发现cookie_secret存在于RequestHandler中
我们查阅资料发现
cookie_secret在RequestHandler.settings中
在官方文档中可以看到,在Tornado的前端页面模板中,Tornado提供了一些对象别名来快速访问对象。
结合百度到的一篇WP
得到cookie_secret
计算filehash
import hashlib def md5(s): md5 = hashlib.md5() md5.update(s.encode('utf-8')) return md5.hexdigest() def filehash(): filename = '/fllllllllllllag' cookie_secret = 'aeb9007d-917b-43cd-93ad-1ae754d9b8ff' print(md5(cookie_secret+md5(filename))) if __name__ == '__main__': filehash()
payload:
http://b24e5c26-565b-4923-9e20-6cfe231d6d17.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=b4ad157b5e32600203792fc910d6c7a8