[护网杯 2018]easy_tornado 1
[护网杯 2018]easy_tornado 1
打开实例发现三个页面

分别为



注意到/fllllllllllllag为真正的flag文件路径,并且在hints.txt页面看到md5(cookie_secret+md5(filename)),结合url的filehash,猜测为filehash的参数值,其中filename有了,差一个cookie
删除filehash值,发现报错

结合题目tornado,tornado是python的一个框架,多用于高并发(有幸做开发用过这玩意儿)。尝试修改msg的参数值,发现可以正常回显

猜测这题为SSTI模板注入漏洞,尝试验证

1+1不生效,猜测有过滤参数,修改为2*2成功回显,确认模板注入漏洞
/error?msg={{2*2}}

因为框架为tornado,存在多个handler,且handler为RequestHandler的子类,RequestHandler.settings指向self.application.settings,所以构造payload直接使得handler指向settings:
/error?msg={{handler.settings}}
成功获取到cookie

获得cookie_secret8eca6c9e-3216-41a1-8021-d89d3049784c,这个时候只要根据md5(cookie_secret+md5(filename))进行MD5加密就能构造出filehash参数值了


b0a0363024a94bd7dfb1e938b2610d79
最终payload为:
/file?filename=/fllllllllllllag&filehash=b0a0363024a94bd7dfb1e938b2610d79
成功获取flag

flag{3be6a404-55bc-4b6a-9abc-06b09befb3d4}
本文来自博客园,作者:TazmiDev,转载请注明原文链接:https://www.cnblogs.com/tazmi/p/18535675

浙公网安备 33010602011771号