thinkphp5.0漏洞修复

article/2025/8/1 13:06:47

thinkphp5.0漏洞修复

5.0版本

文件位置
/thinkphp/library/think/App.php
在这里插入图片描述

if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) {throw new HttpException(404, 'controller not exists:' . $controller); 
}

漏洞描述
由于ThinkPHP5.0框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。

漏洞评级
严重

影响版本
ThinkPHP 5.0系列 < 5.0.24

安全版本
ThinkPHP 5.0系列 5.0.24
ThinkPHP 5.1系列 5.1.31

安全建议
升级ThinkPHP至安全版本
修复方法1.打开
\thinkphp\library\think\Request.php
搜索
方法改为:

public function method($method = false){if (true === $method) {// 获取原始请求类型return $this->server('REQUEST_METHOD') ?: 'GET';} elseif (!$this->method) {if (isset($_POST[Config::get('var_method')])) {$method = strtoupper($_POST[Config::get('var_method')]);if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {$this->method = $method;$this->{$this->method}($_POST);} else {$this->method = 'POST';}unset($_POST[Config::get('var_method')]);} elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {$this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);} else {$this->method = $this->server('REQUEST_METHOD') ?: 'GET';}}return $this->method;}

5.1版本

在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上

if($controller&&!preg_match('/^[A-Za-z](\w|\.)*$/',$controller)){thrownewHttpException(404,'controller not exists:'.$controller);
}

http://chatgpt.dhexx.cn/article/nGSCsfLP.shtml

相关文章

ThinkPHP一键检测ThinkPHP漏洞,漏洞检测工具

功能简介&#xff1a;本工具一键检测网上流行的ThinkPHP漏洞,如存在漏洞请尽快修复。漏洞可造成shell提权,直接用中国菜刀就可以连接,修改服务器文件!危害极大!最好是禁用eval等危险函数! 下载地址&#xff1a;https://pan.edait.cn/s/VfuaQj2li2

Thinkphp漏洞

➢ Thinkphp介绍 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;支持 windows/Unix/Linux等服务器环境。 ➢ Thinkphp应用 很多cms就是基于thinkphp二次开发的&#xff0c;所以thinkphp出问题的话&#xff0c;会影响很多基于thinkphp开发的网站。 ➢历…

Thinkphp历史漏洞复现

Thinkphp简介 Thinkphp 是一种开源框架。是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。 很多cms(内容管理系统)就是基于 thinkphp 二次开发的&#xff0c;所以 thinkphp 出问题的话&#xff0c;会影响很多基于 thinkphp 开发的网站。 Thinkp…

vulhub-thinkphp漏洞复现

vulhub-thinkphp漏洞复现 https://silentx.gitee.io/2022/09/06/thinkphp/ 一.ThinkPHP 2.x 任意代码执行漏洞 1.概述 漏洞成因&#xff1a;ThinkPHP 2.x版本中&#xff0c;使用preg_replace的 /e 模式匹配路由&#xff1a; $res preg_replace((\w).$depr.([^.$depr.\/])e,…

[Vulhub] ThinkPHP漏洞合集

文章目录 ThinkPHP 2.x 任意代码执行漏洞0x00 漏洞描述0x01 影响版本0x02 靶场环境0x03 漏洞分析0x04 漏洞复现0x05 getshell Thinkphp5 5.0.22 / 5.1.29远程执行代码漏洞0x00 漏洞描述0x01 影响版本0x02 靶场环境0x03 漏洞分析0x04 漏洞复现0x05 getshell ThinkPHP5 5.0.23远程…

thinkphp框架漏洞复现

环境搭建请参考vulhub官网&#xff0c;https://vulhub.org 目录 一、2-rce漏洞 二、5.0.23-rce漏洞 三、5-RCE 一、2-rce漏洞 ThinkPHP 2.x版本中&#xff0c;使用preg_replace的/e模式匹配路由&#xff1a; $res preg_replace((\w).$depr.([^.$depr.\/])e, $var[\\\1\]…

MSF复现Thinkphp漏洞

简介 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;诞生于2006年初&#xff0c;原名FCS&#xff0c;2007年元旦正式更名为ThinkPHP&#xff0c;遵循Apache2开源协议发布&#xff0c;从Struts结构移植过来并做了改进和完善&#xff0c;同时也借鉴了国外…

ThinkPHP漏洞总结复现

ThinkPHP漏洞总结 简介版本Thinkphp 2.x 任意代码执行漏洞漏洞原理复现过程修复意见 Thinkphp5-5.0.22/5.1.29远程执行代码漏洞漏洞原理影响范围复现过程修复意见 Thinkphp5.0.23远程代码执行漏洞漏洞原理影响范围复现过程修复意见 Thinkphp5 SQL注入漏洞和敏感信息泄露漏洞漏洞…

ThinkPHP 漏洞利用工具

在Github上搜寻好用的安全工具,来充实武器库,实属一大乐趣所在。 当看到ThinkPHP十年磨一剑的提示,那么今天这里分享的工具就可以派上用场了,一键检测ThinkPHP全版本漏洞。 01、TPscan 一键ThinkPHP漏洞检测,基于Python3,命令行检测,集成了14个常见的ThinkPHP框架漏洞检…

ThinkPHP历史漏洞

文章目录 ThinkPHP简介Thinkphp历史漏洞Thinkphp 2.x 任意代码执行漏洞漏洞描述影响版本漏洞复现 Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)漏洞描述影响版本漏洞复现 ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)漏洞描述影响版本漏洞复现 Think…

thinkphp漏洞总结

目录 前言 一、远程代码执行漏洞 1.1 影响范围 1.2 漏洞详情 二、5.x远程命令注入 三、5.1.x SQL注入 前言 thinkphp是一个国内轻量级的开发框架&#xff0c;采用phpapache&#xff0c;在更新迭代中&#xff0c;thinkphp也经常爆出各种漏洞&#xff0c;thinkphp一般有th…

Thinkphp漏洞详解合集

文章目录 Thinkphp6.0.12LTS反序列化漏洞环境漏洞分析 thinkphp lang命令执行环境影响版本漏洞分析漏洞复现 CNVD-2018-24942(t5RCE)环境影响版本漏洞分析漏洞复现 Thinkphp3.2.x命令执行环境漏洞分析漏洞复现 thinkphp-2x-rce漏洞环境影响版本漏洞分析 Thinkphp5.0.23变量覆盖…

thinkphp漏洞复现

所有文章&#xff0c;仅供安全研究与学习之用&#xff0c;后果自负! thinkphp漏洞 前言一、thinkphp-2x-rce 代码执行0x01 漏洞描述0x02 影响版本0x03 漏洞利用0x04 漏洞修复 二、thinkphp 代码执行 (CNVD-2018-24942)0x01 漏洞描述0x02 影响范围0x03 漏洞利用这就完成了&#…

【shell】shell脚本实战-while循环语句

前言 上文我们讨论了for循环的使用&#xff0c;在有限循环里&#xff0c;我们使用for循环是很方便的一件事情&#xff0c;今天我们来探讨下while循环 while循环语句的语法分析 语法格式一&#xff1a; while [条件] do操作 done语法格式二&#xff1a; while read line do操作…

linux中shell的循环

循环主要分为3种 1.for循环 for循环的基本语法结构是三步走 for ##条件do ##要做什么 done ##结束 借几个脚本来理解一下…

【Linux】shell编程之循环语句

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、循环语句二、for循环语句1.for 语句的结构2.for语句应用示例 三、while 循环语句1.while 循环语句结构2.while语句应用示例 四、until 循环五、跳出循环六、死循…

shell-循环

接上一篇shell运算符接着往下说&#xff0c;shell循环&#xff1a; shell循环有三种&#xff0c;一种是for循环&#xff0c;一种是while循环&#xff0c;还有一种是until循环&#xff0c;循环体中和java类似&#xff0c;可以使用break调出当前循环&#xff0c;continue继续下一…

linux\bash shell for命令\循环

内容来自《Linux命令行与shell脚本编程大全.第3版 (布鲁姆&#xff0c;布雷斯纳汉)》for命令 下面是基本格式&#xff1a; for var in list # 或者把do也写在这一行&#xff1a;for var in list; do docommands done例如&#xff0c;读取列表&#xff1a; for test in A…

linux用while循环输出1到10,Linux Shell系列教程之(十一)Shell while循环 | Linux大学...

摘要 在上一篇Linux Shell系列教程之(十)Shell for循环中&#xff0c;我们已经对Shell 循环语句的for循环进行了介绍&#xff0c;本篇给大家介绍下Shell 中另一种循环语句&#xff1a;Shell while循环。 在上一篇Linux Shell系列教程之(十)Shell for循环中&#xff0c;我们已经…

Linux命令行循环执行shell命令浅谈

本文主要介绍了Linux命令行&#xff0c;循环执行shell命令的相关知识&#xff0c;主要包括死循环&#xff0c;普通计数循环&#xff0c;以及Linux shell循环命令 while死循环的用法,需要的朋友可以参考下 Linux命令行&#xff0c;循环执行shell命令 死循环 命令格式 1 while t…