近期,仍有不少境外菠菜在攻击大家的服务器,被挂马以后网站不能正常访问、跳转第三方网站等等情况均有发生。
废话不多说,直接上解决方案。
一、补上漏洞
有些攻击是利用了Thinkphp5.0.0~5.0.23版本远程进行代码调用的漏洞进行的getshell。
漏洞的详细原理参见:https://seaii-blog.com/index.php/2019/01/14/88.html
甭管有没有,先把这个堵上。
打开/thinkphp/library/think/Request.php文件,找到method方法(约496行),修改下面代码:
//原来的代码
$this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);
修改为如下代码:
$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')]);
二、禁用底层加载classmap.php文件
打开/thinkphp/library/think/Loader.php文件(约313行),注释下面的代码:
// 加载类库映射文件
//if (is_file(RUNTIME_PATH . 'classmap' . EXT)) {
// self::addClassMap(__include_file(RUNTIME_PATH . 'classmap' . EXT));
//}