BUUCTF Web easy_tornado

16 篇文章 0 订阅

打开是三个txt链接
在这里插入图片描述在这里插入图片描述
在这里插入图片描述初步可断定flag在fllllllllag中,而filehash就是md5加密的数据,cookie_secret是不知道的
Render不知道是什么意思去查了下,render函数用于创建html模板,和template类似,不过render更为简洁。render是题目tornado里面的函数,tornado是基于Web服务框架。
看了下网上其他人,他们根据render是python中的一个渲染函数,渲染变量到模板中,即可以通过传递不同的参数形成不同的页面和现有信息推断出是服务端模块注入攻击(SSTI)。我也不知道是怎么推断出的,可能看到render或tornado这些与服务器模板相关的东西就需要联想到吧。

去网上搜素SSTI,很多内容是和沙盒逃逸一起讲的。B站上有FreeBuf对其的讲解视频(英文版),看了视频及资料,到最后有了初步的了解,到深层次的理解是不可能的,等到以后吧。

SSTI是注入类型漏洞,可以联想到sql注入,它是由render_template渲染函数引发的。用户可以在其模板定义中夹杂进恶意代码或命令

render_template渲染函数:
就是把HTML涉及的页面与用户数据分离开,这样方便展示和管理。当用户输入自己的数据信息,HTML页面可以根据用户自身的信息来展示页面,因此才有了这个函数的使用。

{{}}在Jinja2中作为变量包裹标识符,Jinja2在渲染的时候会把{{}}包裹的内容当做变量解析替换。比如{{1+1}}会被解析成2。因此才有了现在的模板注入漏洞。往往变量我们使用{{这里是内容}}
真因为{{}}包裹的东西会被解析,因此我们就可以实现类似于SQL注入的漏洞

其实看了很多,对这道题有用的部分就是向{{}}里面传命令然后返回想要的结果。

至于这个题目,先把filename=fllllllllllllag再说

在这里插入图片描述修改msg的内容
在这里插入图片描述
得到这样一个结果,按照大佬的解释这样证明是有ssti注入,应该是看到可以通过{{}}来传命令推断是有ssti注入
往{{}}里面传handler.settings就可返回含有cookie_secret的内容
然后又去找了下为什么传handler.settings得出cookie_secret,网上很多人的wp都没说,我结合了一些人写的得出了大致结论

在这里插入图片描述在Tornado官方文档发现了cookie_secret的相关位置
在这里插入图片描述
这里面有很多cookie的函数,然后根据一篇博客
handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所有handler.settings就指向RequestHandler.application.settings了
解释起来就是handler.settings指向的内容里面包含cookie_screct内容。这些很多都是基于对Tornado框架的理解。
在这里插入图片描述
得到cookie_secret,然后就可以md5加密了,网上大部分是用python去解的,直接用在线的加密器也行,主要是懒得去敲python代码
在这里插入图片描述
这里filename的内容中是有个 / 的,之前一直返回error后来才发现没加 / 就直接加密了。
在这里插入图片描述组合加密得到filehash的值
在这里插入图片描述
得到最后结果
每次cookie的值都是不一样的,得到的结果也会不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值