tornado模板注入-CSDN博客 贴一篇别人的blog
先了解一下tornado,tornado是python的一个模板,tornado模板注入
语法:
控制语句
和flask类似,tornado中的模板也可以使用for、if、while等控制语句,并且同样使用{%%}
进行包裹。其中break continue也可以通过{%%}
包裹使用。
但是不同的是结尾为固定的{% end %}
。
表达式
表达式使用{{}}
进行包裹在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量。
handler.settings,可以把它理解为tornado模板中内置的环境配置信息名称,通过handler.settings可以访问到环境配置的一些信息,看到tornado模板基本上可以通过handler.settings一把梭。
打开发现看到页面,发现三个txt文件
依次点开,发现给了不同的提示
flag.txt是flag in /fllllllllllllag
welcome.txt中没给有用的东西
但是在hints.txt给了提示(猜测可能与url中的filename有关系,并且三个文件都有filehash)
那么这里的hints.txt给出了我们解题的方向,这里我们知道了flag in /fllllllllllllag,所以filename应该是/fllllllllllllag,然后filehash应该是md5(cookie_secret+md5(filename)),所以现在我们只需要找到cookie_secret就可以得到filehash了
题目给了提示是tornado,通过模板注入来获取cookie_secret
error?msg={{handler.settings}}
然后我们根据hints.txt中的方法来进行md5加密就好了
/fllllllllllllag=3bf9f6cf685a6dd8defadabfb41a03a1
0e233552-60e1-4a7e-b2b2-674cb01e1bc83bf9f6cf685a6dd8defadabfb41a03a1=ff4fa83d7605583aac04d1bb6c6aef19