BUUCTF-[护网杯 2018]easy_tornado 记录

[护网杯 2018]easy_tornado

首先打开界面,看到三个链接,分别点一下

根据三个链接提示,flag在/fllllllllllllag文件中,render是python中的一个渲染函数,渲染变量到模板中,即可以通过传递不同的参数形成不同的页面。根据url需要个filehash,这个应该就是生成的filehash的方式,filename已经有了,就剩下cookie_secret.

测试后发现还有一个error界面,格式为/error?msg=Error,猜测存在服务端模板注入攻击 (SSTI)

尝试/error?msg={{datetime}},datetime是指向python中datetime这个模块,Tornado提供了一些对象别名来快速访问对象,可以参考Tornado官方文档

通过查阅文档发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名,这里参考师傅们的wp。

handler指向的处理当前这个页面的RequestHandler对象,

RequestHandler.settings指向self.application.settings,

因此handler.settings指向RequestHandler.application.settings。

构造payload获取cookie_secret

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

得到cookie_ecret,计算hashfile值

带到url,得到flag。

你可能感兴趣的:(BUUCTF-[护网杯 2018]easy_tornado 记录)