[护网杯 2018]easy_tornado 1
打开环境,可以看到三个链接:
我们依次点击,发现内容如下:
通过这里的提示,我们不难看出,filehash的规则就是:md5(cookie_secret+md5(filename))
但是这里我们需要知道cookie_secret是什么,结合题目的提示:easy_tornado
tornado是python的一个模板,因此我们猜测这是一个模板注入的题。
先试一下,不改变filehash将filename改为:/fllllllllllllag试一下:
这里我们发现,通过更改mag的值就能控制页面的变化:
我们知道模板注入必须通过传输型如{{xxx}}的执行命令。而我们的这个
tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量,这里面就存在我们需要的cookie_secret。
这里就拿到了cookie_secret,接着就是按照规则进行md5加密即可。最终的payload为:
?filename=/fllllllllllllag&filehash=65046fcd9d8f306424f975f7ff9a3ac6
这里解释一下,为什么加密的时候要用32位小写而不是32位大写,因为我们通过观察就可以发现filehash用到的就是32为,且是小写。无论是跳转到哪个页面都是这个规则。所以这里就大胆使用32位小写加密。