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

news/2025/2/12 9:56:53/

题目来源: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.ppmy.cn/news/1571389.html

相关文章

C++ list介绍

文章目录 1. list简介2. list的实现框架2.1 链表结点2.2 链表迭代器2.3 链表 3. list迭代器及反向迭代器设计3.1 list迭代器3.2 list反向迭代器3.3 list迭代器失效 4. list与vector比较 1. list简介 list,即链表。 链表的种类有很多,是否带头结点&#…

探索二分图:染色法与匈牙利算法

引言 二分图(Bipartite Graph)是图论中一种特殊的图结构,其顶点集可以划分为两个互不相交的子集,且图中的每条边都连接这两个子集中的顶点。二分图在任务分配、匹配问题、网络流等领域有着广泛的应用。本文将详细介绍二分图的定义…

DeepSeek 的含金量还在上升

大家好啊,我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评,除此之外,也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章,探讨 DeepSeek 在使用 GPU 进行模型训练…

C# 数据验证Regex

Regular Expression,简称 Regex,是一种用于匹配和处理文本的强大工具。它通过定义特定的模式,可以用来搜索、替换或提取字符串中的特定内容。 先引入命名空间 using System.Text.RegularExpressions; Intege(整数) 必须是正整数 //必须是正整数publi…

LabVIEW之TDMS文件

在很多场合,早期的LabVIEW版本不得不借助常规的数据库来做一些数据管理工作,但常规数据库对于中高速数据采集显然是不合适的,因为高速数据采集的数据量非常大,用一般的数据库无法满足存储数据的要求。 直到TDM(Technical Data Ma…

Deepseek-R1实现原理概述

Deepseek-R1实现原理概述 基本概念 强化学习(Reinforcement Learning) 强化学习 (RL) 是一种机器学习,其中AI通过采取行动并根据这些行动获得奖励或惩罚来进行学习。目标是随着时间的推移最大化奖励。 示例:想象一下教机器人玩游戏。机器人尝试不同的…

Java网络编程学习(一)

网络相关概念 网络体系结构 OSI体系结构(七层) OSI(Open Systems Interconnection,开放系统互联)体系结构将整个计算机网络分为七层,从上到下依次为:应用层、表示层、会话层、传输层、网络层…

ssm校园二手交易平台小程序

博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…