[护网杯 2018]easy_tornado 1
复现一道关于tornado的题目
首先可以得知此题用的是tornado,基于python的后端框架,多半是ssti注入
有三个文件,首先可得知flag在何处
然后观察hint和url就知道要根据cookie_secret来伪造请求,所以现在就只要找cookie——seceret
url出错后会跳到此界面,发现注入点。
首先了解下tornado的相关知识
自己上手写下
了解下粗略的过程,tornado会用tornado.web.Application来构造实例,而其中参数handlers传入了正则表达式的url和相对一个的handler函数---一个url对应一个方法。
然后在文档里查阅关于cookie_secret的相关点
由此可知我们要得到的是传入实例的参数。自己写了下程序体会下
然后查阅文档得知tornado的另一点,那就是settings属性,里面有传入的参数
于是我们要在{{}}中传入settings属性把他渲染出来。
而‘Handler’指向的处理当前这个页面的RequestHandler对象
重新翻了一下文档,发现又是一个别名
handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所有handler.settings就指向RequestHandler.application.settings了
paylod为‘error?msg={{handler.settings}}’
拼凑下就可以拿到flag