122,【6】buuctf web [护网杯2018] easy_tornado
进入靶场
出现了3个文件
点击看看
都点击看看
得知flag所在目录
render在 Web 开发框架中常常出现
cookie_secret
是一个用于对 Cookie 进行签名或加密的密钥。
意味着我们现在需要先找到 cookie_secret
在请求里有cookie,但都不显示cookie,反观三个文件点开后的url,奇奇怪怪,把从&开始的部分删掉看看出现新的页面
新页面没有,url倒是有一个
发现msg后面的和页面显示的一样,改它验证一下
这块应该就是模板的注入点
{ {6*6}}
本来应该显示36,但是并没有,应该存在过滤机制
换一个
{ {handler.settings}}
用于输出配置信息
'cookie_secret': 'd5ce5011-ce0a-4283-b376-34b6eaa9c7d7'
这不就妥了吗,都有了,直接MD5
发现括号位置有点东西
md5(cookie secret+md5(filename))
先对文件名MD5,再把它和cookie secret组合,再去MD5
594cb6af684ad354b4a59ac496473990
组合
d5ce5011-ce0a-4283-b376-34b6eaa9c7d7594cb6af684ad354b4a59ac496473990
再加密
f2ceb75c80c6d0db5e0c5318325aa206
传参的时候发现不行,回顾了一下文件名里少了个/,我还以为/是在提示路径
不过之前的文件名里也都有/,怪自己不细心
重来
3bf9f6cf685a6dd8defadabfb41a03a1
拼接一下
d5ce5011-ce0a-4283-b376-34b6eaa9c7d73bf9f6cf685a6dd8defadabfb41a03a1
698c511838b50e22b292ed57c15d488f
笔记
- Tornado 模板注入:Tornado 是 Python 的一个 Web 框架,自带模板引擎。当 Tornado 应用对用户输入处理不当时,就可能出现模板注入。在 Tornado 模板中,
{ {}}
用于表达式输出,{% %}
用于控制语句(如循环、条件判断等)。攻击者可以构造恶意输入,如{ {handler.settings}}
来获取应用的配置信息,或者利用更复杂的表达式执行系统命令等。