[护网杯 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}
标签:filehash,settings,tornado,filename,cookie,2018,护网杯,md5 From: https://www.cnblogs.com/tazmi/p/18535675