当前位置: 首页 > article >正文

2025.2.8——一、[护网杯 2018]easy_tornado tornado模板注入

题目来源:BUUCTF  [护网杯 2018]easy_tornado

目录

一、打开靶机,整理信息

二、解题思路

step 1:分析已知信息

step 2:目标——找到cookie_secret

step 3:构造payload

三、小结


一、打开靶机,整理信息

        直接给了三个文件,点进去看看

        给了这三个信息,开始分析

二、解题思路

step 1:分析已知信息

1.告诉了我们flag in /fllllllllllllag

2.第二个文件重点render,是python中的一个渲染函数,url都是由filename和filehash组成,filehash即位他们filename的md5值

3.md5(cookie_secret+md5(filename)),给了我们加密方式,是将cookie_secret和md5(filename)拼接起来,再进行一次md5加密,所以我们需要找到cookie_secret,而第一条信息给我们的是flag在/fllllllllllllag文件中,所以猜测filename=/fllllllllllllag

But,url上面有点奇怪,可以一起看一下

/file?filename=/flag.txt&filehash=581a9759facbcc1a83a3b50cc99103dc

/file?filename=/welcome.txt&filehash=eb45ae2f382f05aa91e5f292edc6fcfd

/file?filename=/hints.txt&filehash=dbcd1e15de57d6753b7d62da938b58e6

        发现三个文件都保存在filehash(文件名被哈希算法加密32位小写)

有一个师傅的wp解决了我的疑惑:122,【6】buuctf web [护网杯2018] easy_tornado-CSDN博客

        注入点是这么来的

step 2:目标——找到cookie_secret

        看了其他师傅的wp,说本题题目也提示了tornado,这是python的一个模块注入,联系第二个文件中的render方法

        所以我们可以将代码放在双花括号里进行执行,其他大佬的wp中提到

step 3:构造payload

        结合上面信息,我们可以构造payload如下

/error?msg={
  
  {handler.settings}}

        得到了cookie_secret信息

        将其与flag所在文件的文件名/fllllllllllllag进行md5加密以后得到

224efb29-b925-4b70-b53c-8e9a154688143bf9f6cf685a6dd8defadabfb41a03a1

        将整体再进行md5加密得到

45288316089fdc7fd3770fde20322384

        构造payload如下

/file?filename=/fllllllllllllag&filehash=45288316089fdc7fd3770fde20322384

url传参得到flag信息

三、小结

1.tornado模板注入

2.这里的注入点来源是修改了url,只传参file的话,url变化得到/error?msg=Error,修改Error,发现注入点的


http://www.kler.cn/a/537698.html

相关文章:

  • Qt+海康虚拟相机的调试
  • 文件上传到腾讯云存储、签名及设置过期时间
  • 【leetcode100】岛屿的最大面积
  • 使用Python的Tabulate库优雅地格式化表格数据
  • 从java角度对比nodejs、fastapi,同步和异步区别
  • OpenBMC:通过qemu-system-arm运行编译好的image
  • CNN-day10-经典神经网络MobileNet V1&V2&V3
  • Spring 中的 事务 隔离级别以及传播行为
  • kafka 3.5.0 raft协议安装
  • PHP在线客服系统
  • 【WebLogic】Oracle发布WebLogic 14c最新版本-14.1.2.0
  • 「JVS更新日志」生产计划排程系统APS已上线!以及智能BI、低代码、规则引擎2.6更新说明
  • anaconda中可以import cv2,但是notebook中cv2 module not found
  • 深入理解 C++17 std::is_swappable
  • 使用 Axios ——个人信息修改与提示框实现
  • 参数映射服务完整解决方案
  • Could not create task ‘:mainActivity:minifyReleaseWithR8‘.
  • 【Flink快速入门-8.Flink Flink 架构介绍】
  • 利用Termux在安卓手机中安装 PostgreSQL
  • CPP集群聊天服务器开发实践(一):用户注册与登录
  • Chrome谷歌多开教程:实用方法与工具
  • 使用Python和`moviepy`库从输入的图片、动图和音频生成幻灯片式视频的示例代码
  • 盘姬工具箱:完全免费的电脑工具箱
  • DeepSeek从入门到精通:全面掌握AI大模型的核心能力
  • 【Outlook】如何将特定邮件显示在Outlook的重点收件箱中
  • 机器学习数学基础:19.线性相关与线性无关