[护网杯2018]easy_tornado SSTI
信息
出现三个文件,依次访问
http://082326f5-6971-4891-8f5d-0e5d6e55ca4a.node3.buuoj.cn/file?filename=/hints.txt&filehash=eeac59dc6d8838047787c4f8dd23fc8c
分析
flag在/fllllllllllllag
Render提示是模板注入,SSTI,render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 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.settings,handler 指向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