[护网杯 2018]easy_tornado
2020-04-06 本文已影响0人
LonelySong
通过题目名字tornado猜测这个网站是使用python写的
Tornado是一个Python web框架和异步网络库,起初由 FriendFeed 开发. 通过使用非阻塞网络I/O, Tornado可以支撑上万级的连接,处理 长连接,WebSockets,和其他需要与每个用户保持长久连接的应用。
访问题目网站发现3个文件
依次尝试访问文件。
/flag.txt
/welcome.txt
/hints.txt
尝试访问flag
发现报错,看它这个url猜测可能存在模板注入,测试是否存在模板注入
发现存在模板注入
在Tornado的前端页面模板中,datetime是指向python中datetime这个模块,Tornado提供了一些对象别名来快速访问对象,通过查阅文档发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名
RequestHandler.settings
An alias for self.application.settings.
handler指向的处理当前这个页面的RequestHandler对象,
RequestHandler.settings指向self.application.settings,
因此handler.settings指向RequestHandler.application.settings。
构造payload获取cookie_secret
/error?msg={{handler.settings}}
根据/hints.txt计算filehash
最后得到payload
/fllllllllllllag&filehash=79ec52693cca83f6886b40bbdca9ed3f
拿到flag