buuctf-easy_tornado
打开题目环境
进去之后有三个文件,依次打开
直接告诉我们flag的位置
Render是python中的一个渲染函数,渲染变量到不同模块中,就可以通过传递不同参数
形成不同的界面
filehash=md5(cookie_secret+md5(filename))
现在filename=/fllllllllllllag,只需要知道cookie_secret的既能访问flag。
当我尝试着直接修改payload时,弹出来一个错误界面,仔细看url,出现了新的参数
这里不知道是什么东西,去查了下,这里可能存在这一个服务端模板注入攻击
这里就有些不明所以了,去查了下wp
尝试/error?msg={{datetime}}
在Tornado的前端页面模板中,datetime是指向python中datetime这个模块,Tornado提供了一些对象别名来快速访问对象查阅文档发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名
handler指向的处理当前这个页面的RequestHandler对象,
RequestHandler.settings指向self.application.settings,
因此handler.settings指向RequestHandler.application.settings。
构造payload获取cookie_secret
求出cookie值
构造payload。第二个有效
file?filename=/fllllllllllllag&filehash=5d9399b38c89e8113091cba9ad51513e