[护网杯 2018]easy_tornado

通过题目名字tornado猜测这个网站是使用python写的

Tornado是一个Python web框架和异步网络库,起初由 FriendFeed 开发. 通过使用非阻塞网络I/O, Tornado可以支撑上万级的连接,处理 长连接,WebSockets,和其他需要与每个用户保持长久连接的应用。

访问题目网站发现3个文件

 

[护网杯 2018]easy_tornado_第1张图片

 

依次尝试访问文件。
/flag.txt

 

[护网杯 2018]easy_tornado_第2张图片


/welcome.txt

[护网杯 2018]easy_tornado_第3张图片

 

/hints.txt

 

[护网杯 2018]easy_tornado_第4张图片

尝试访问flag

 

 

发现报错,看它这个url猜测可能存在模板注入,测试是否存在模板注入

 

[护网杯 2018]easy_tornado_第5张图片


发现存在模板注入
在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}}

[护网杯 2018]easy_tornado_第6张图片

 

[护网杯 2018]easy_tornado_第7张图片

 

根据/hints.txt计算filehash

 

最后得到payload

/fllllllllllllag&filehash=79ec52693cca83f6886b40bbdca9ed3f

拿到flag

 

你可能感兴趣的:(CTF-WEB,安全漏洞,web安全,渗透测试,CTF)