[护网杯 2018]easy_tornado 1

[护网杯 2018]easy_tornado 1

打开实例发现三个页面

image-20241107223344844

分别为

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

删除filehash值,发现报错

image-20241107223743770

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

image-20241107223935519

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

image-20241107224145381

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

/error?msg={{2*2}}

image-20241107224222016

因为框架为tornado,存在多个handler,且handler为RequestHandler的子类,RequestHandler.settings指向self.application.settings,所以构造payload直接使得handler指向settings:

/error?msg={{handler.settings}}

成功获取到cookie

image-20241107224814566

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

image-20241107225329706

image-20241107225404108

b0a0363024a94bd7dfb1e938b2610d79

最终payload为:

/file?filename=/fllllllllllllag&filehash=b0a0363024a94bd7dfb1e938b2610d79

成功获取flag

image-20241107225459215

flag{3be6a404-55bc-4b6a-9abc-06b09befb3d4}

posted @ 2024-11-08 18:48  TazmiDev  阅读(218)  评论(0)    收藏  举报