[护网杯2018]easy_tornado SSTI

信息

出现三个文件,依次访问

 

 

 

http://082326f5-6971-4891-8f5d-0e5d6e55ca4a.node3.buuoj.cn/file?filename=/flag.txt&filehash=05e73c4181a1e18ebfc6a19f7a144dc6

 

 

 

http://082326f5-6971-4891-8f5d-0e5d6e55ca4a.node3.buuoj.cn/file?filename=/welcome.txt&filehash=734305e80c140a16b9961570cbfb40dc

 

 

 

http://082326f5-6971-4891-8f5d-0e5d6e55ca4a.node3.buuoj.cn/file?filename=/hints.txt&filehash=eeac59dc6d8838047787c4f8dd23fc8c

 

 

 

分析

flag/fllllllllllllag

Render提示是模板注入,SSTI,renderpython中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 render配合Tornado使用

 

Ps:Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快

 

网址格式为:file?filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(filename))

关键是获取cokie_secret

 

过程

直接访问file?filename=/fllllllllllllag

 

 

 

出现error

 

 

 

根据刚刚的分析,尝试{{}}注入

 

 

 

尝试其他的特殊字符,发现都是ORZ,说明过滤了一些奇怪的字符,根据分析,在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settingshandler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量,尝试注入{{handler.settings}}

 

 

 

得到cookie

脚本编写,因为是filehash=md5(cookie_secret+md5(filename))

脚本:

 

 

 

 

 

得到了filehash,根据分析,访问

file?filename=/fllllllllllllag&filehash=5b9f88453da11859c11d816c32833ebb

 

 

 

 

 

SSTI完全学习:https://blog.csdn.net/zz_Caleb/article/details/96480967

       https://www.jianshu.com/p/aef2ae0498df

 

posted @ 2020-04-22 23:02  Lee-404  阅读(228)  评论(0编辑  收藏  举报
Live2D