攻防世界 Web题--easytornado

一个个文件看过去:

已经可以看出一些端倪了,flag在   /fllllllllllllag   下,但后面需要跟上一个filehash参数,这个参数根据每个文件的名字不同而不同,具体的运算内容是/hints.txt中显示的算式。而要得到flag就应该是这样的式子: file?filename=/fllllllllllllag & filehash=md5(cookie_secret+md5(/fllllllllllllag))

缺的一个量就是cookie_secret,看了看还有两个条件没用,一个是题目提示的tornado以及welcome.txt中的render,看看能不能利用:

Tornado是一个用python编写的网络框架,其中,render方法用于将 模板文件(HTML 模板)与 数据 结合,生成最终的 HTML 页面返回给客户端

这里应该就是利用模板注入了,通过注入特殊的参数来获得值cookie_secret。哪里找模板注入的入口呢?我抓包尝试了下

发现这里有个Location,尝试一下:

成功找到模板注入的入口;上网搜索了下什么可以访问到tornado里的cookie_secret,给的解释有在 RequestHandler 中访问,而handler.settings 包含了 Tornado 应用启动时的所有配置项,这些配置在创建 Application 实例时通过关键字参数传入,并在每个 RequestHandler 实例中通过 self.settings 访问。

 得到cookie_secret:3f814ceb-5a64-4c86-8379-eaf2bfda1464

import hashlib

cookie='3f814ceb-5a64-4c86-8379-eaf2bfda1464'
file='/fllllllllllllag'

file=hashlib.md5(file.encode('utf-8')).hexdigest()
print(file)

ans=cookie+file
ans=hashlib.md5(ans.encode('utf-8')).hexdigest()
print(ans)

得到filehash的结果:22df77a980f4e418d0e72c191e2f40a5

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值