【护网杯2018】-攻防世界web-高手进阶区-easytornado
思路
url形如http://159.138.137.79:55925/file?filename=/welcome.txt&filehash=bfa0e94f85fe24936b59f8e75a2c8bb8,既然说了flag在/fllllllllllllag,那前半部分就有了。
filehash计算方法:md5(cookie_secret+md5(filename)),问题就是要拿到cookie_secret。
tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式。
GOGOGO
尝试直接输入/fllllllllllllag返回error,修改error的msg值为{{2}},返回2,修改msg值为{{2*3}},返回orz,说明操作符被过滤。
现在要拿到tornado中的cookie,用的就是handler.settings对象,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所有handler.settings就指向RequestHandler.application.settings了。传递error?msg={{handler.settings}},得到cookie_secret为84cfe5dc-0065-4cf6-83a7-e574a2210e8c。
/fllllllllllllag的MD5值:3bf9f6cf685a6dd8defadabfb41a03a1(取32位!!) https://md5jiami.51240.com/
坑
/fllllllllllllag不是/fllllllllllllag.txt原文:https://www.cnblogs.com/poziiey/p/12703616.html