从题目表述:Tornado框架
可以知道应该是Tornado框架漏洞
tormado是python中的一个web应用容器
点进去场景 呈现在眼前的是
三个链接 我们一个一个点进去看看
flag.txt点进去
flag就在 这里面
试一试url访问 /file?filename=/fllllllllllllag
跳转页面
报了error,在游览器上有回显,那判断这里可能存在模板注入(SSTI)
{{ ... }}:装载一个变量,模板渲染的时候,会使用传进来的同名参数这个变量代表的值替换掉。
{% ... %}:装载一个控制语句。
{# ... #}:装载一个注释,模板渲染的时候会忽视这中间的值
welcome.txt 点进去
render是python中的一个渲染函数,
可以通过传递不同的参数形成不同的页面.
Hints.txt 点进去
url中有一个filehash接收参数
那么猜测filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(filename)) 访问这个 应该就是我们要的flag了
那么如何获得cookie_secret呢?
查到cookie_secret在application对象settings属性中,
self.application.settings可以用handler替代
handler指向处理当前这个页面的RequestHandler对象, RequestHandler.setting指向self.application.settings,因此构造payload{{handler.settings}}
最后得到
按照之前的格式去md5加密 然后以url方式访问得到flag