最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案

来源:懂视网 责编:小采 时间:2020-11-27 14:12:10
文档

ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案

ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案:本篇文章主要给大家介绍ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案,希望对需要的朋友有所帮助!漏洞描述由于ThinkPHP5.0框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。漏洞评级严重影响版本Thi
推荐度:
导读ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案:本篇文章主要给大家介绍ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案,希望对需要的朋友有所帮助!漏洞描述由于ThinkPHP5.0框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。漏洞评级严重影响版本Thi
本篇文章主要给大家介绍ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案,希望对需要的朋友有所帮助!

漏洞描述
由于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.打开

thinkphplibrarythinkRequest.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')])) {
 $this->method = strtoupper($_POST[Config::get('var_method')]);
 $this->{$this->method}($_POST);
 } 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;
 }

改成:

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;
 }

保存,覆盖 测试无误 漏洞修复完成。

文档

ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案

ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案:本篇文章主要给大家介绍ThinkPHP < 5.0.24 远程代码执行高危漏洞的修复方案,希望对需要的朋友有所帮助!漏洞描述由于ThinkPHP5.0框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。漏洞评级严重影响版本Thi
推荐度:
标签: 5.0 thinkphp &lt;
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top