功夫码

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

晓峰 时间:2019-09-24 11:07:58 阅读:25
--------------------------------------------------------- Ta 只分享的内容开始 ---------------------------------------------------------------------

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

修复方法1.打开 thinkphp/library/think/Request.php
搜索 method方法,大概在500行左右

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

这样就修复完成了

--------------------------------------------------------- Ta 只分享了这些内容 ---------------------------------------------------------------------

本文来源:功夫码(gongfuma.com)
声明:本文系功夫码原创稿件,版权属[功夫码 gongfuma.com]所有。
未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:功夫码",违者将依法追究责任。

相关文章

回到顶部