1.首先是把攻击文件清理。
找攻击文件的方式有在静态文件目录查找后缀为 “
.php
”的文件就好了
2.修改tp5底层的一个漏洞:
- 修改第一个文件
yourpath\thinkphp\library\think\App.php
搜索
public static function module(
找到 ==》
// 获取控制器名
$controller = strip_tags($result[1] ?: $config['default_controller']);
替换为
// 获取控制器名
$controller = strip_tags($result[1] ?: $config['default_controller']);
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
- 修改第二个文件
yourpath\thinkphp\library\think\Route.php
搜索
public static function parseUrl(
找到 ==》
// 解析控制器
$controller = !empty($path) ? array_shift($path) : null;
}
替换为
// 解析控制器
$controller = !empty($path) ? array_shift($path) : null;
}
if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
以上为手动修复方法,其实最好的是升级版本。。
其他的手段就是装一些防篡改的软件,把项目保护起来。