Buuoj [护网杯 2018]easy_tornado 1

打开题目依次查看三个链接,并查看url

Buuoj [护网杯 2018]easy_tornado 1
Buuoj [护网杯 2018]easy_tornado 1
Buuoj [护网杯 2018]easy_tornado 1
Buuoj [护网杯 2018]easy_tornado 1
/file?filename=/hints.txt&filehash=6615ce559d0b53983169903e65519831

可知flag存储在/fllllllllllllag,请求文件使用file接口,传输文件名以及一个哈希值,哈希值由md5(cookie_secret+md5(filename))组成。

先来直接请求一下/fllllllllllllag但不传输哈希值。

Buuoj [护网杯 2018]easy_tornado 1

可以看到我们被重定向到了error界面,url中的msg参数会被输出到网页上。

在url中对msg参数进行修改可以发现网页上的提示也同步被修改,此时可以怀疑这里存在模板注入。

tornado的配置这里名为 handler.settings ,我们将它用{{}}包裹起来作为参数传给error。

Buuoj [护网杯 2018]easy_tornado 1

可以看到这时cookie_secret就被泄漏出来了。(注:每次启动此cookie_secret应该不同)

验证一下:

md5(f6b4c50b-b881-4913-9d8a-7da82bd0481e+md5(filename))

Buuoj [护网杯 2018]easy_tornado 1

与url中请求的相同,此时可以获取flag了。

Buuoj [护网杯 2018]easy_tornado 1
Buuoj [护网杯 2018]easy_tornado 1
分享