mingyunyuziyou

修复Thinkphp远程代码执行漏洞
最近,手里好几个站都被挂马。首页被篡改,导致无法访问和被百度K站的下场。木马的关键词 define('Viv, b...
扫描右侧二维码阅读全文
23
2020/03

修复Thinkphp远程代码执行漏洞

最近,手里好几个站都被挂马。首页被篡改,导致无法访问和被百度K站的下场。

木马的关键词 define('Viv, bebegim.','Denzel-你的英雄');

找了好久后发现是由TP的这个漏洞引起的。

解决方法: 找到文件:thinkphp/library/think/Request.php 修改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')])) {
                $this->method = strtoupper($_POST[Config::get('var_method')]);
                if (in_array($this->method, array('POST', 'GET', 'DELETE', 'PUT', 'PATCH')))
                    $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;
    }

添加
if (in_array($this->method, array('POST', 'GET', 'DELETE', 'PUT', 'PATCH')))

Last modification:March 23rd, 2020 at 04:39 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment