护网杯_2018_easy_tornado
[护网杯 2018]easy_tornado
0x00 过程
进页面发现三个路径:
flag路径告诉了真正的flag存在哪个地方。
点击hints发现提示:
发现url路径必须有正确的文件参数和哈希才能访问指定文件。而提示这里告诉了filehash的生成方法,但是cookie里翻了以下没有cookie_secret这个东西。
welcome路径发现提示render。
根据题目Toranado和render提示可以猜出,大概率是python tornado的模版注入。搜集相关资料发现,tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}
进行传递变量和执行简单的表达式。
题目中的报错页面是根据msg的输入来进行输出的,这里可以进行{{handler.settings}}
模版注入:
有了cookie_secret,接下来就是顺理成章拿flag。这里就不着重叙述了。
0x01 参考
easy_tornado 1 | 洛冰河 (glacierluo.com)
python SSTI tornado render模板注入_multi4的博客-CSDN博客
护网杯_2018_easy_tornado
https://k1nm0.com/2022/10/23/EasyTornado/