「配枪朱丽叶。」

RootのCTF学习笔记。

BUUCTF-easy_tornado

首页有三个超链接:

/flag.txt 提示flag in /fllllllllllllag
/welcome.txt 提示render
/hints.txt 提示md5(cookie_secret+md5(filename))

刚开始试了下hash长度扩展攻击 不对,返回Error
后来学习了一下服务器端模板注入(SSTI)
尝试了输入/error?msg={{1}} 存在模板注入

输入/error?msg={{2*3}}

唔。。不能运算

然后学习了一下:
关于render()渲染函数
关于Tornado。
简单的理解:

render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页。
render是一个类似模板的东西,可以使用不同的参数来访问网页。那么我们在进行该题目的操作时,其实参数也是传递过来的,那么是什么参数呢?

在tornado模板中,存在一些可以访问的快速对象:

 <title>
     {{ escape(handler.settings["cookie"]) }}
 </title>

构造/error?msg={{handler.settings}}


得到flag