应直接搜索可疑后门特征代码,重点检查eval、assert、system、exec、shell_exec、base64_decode等函数及其混淆调用,结合文件修改时间、异常命名、日志分析与系统持久化痕迹综合排查。

怎么看 PHP 文件里有没有可疑后门
直接搜常见后门特征代码,比等网站变慢再排查更有效。重点盯 eval(、assert(、system(、exec(、shell_exec(、base64_decode( 这些函数调用,尤其是它们嵌套或参数被混淆的情况。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 用
grep -r "eval\|assert\|system\|exec\|shell_exec\|base64_decode" /var/www/html/ --include="*.php"快速扫描(路径按实际改) - 注意伪装写法,比如
$a='ev'.'al'; $a($_POST['x']);或用gzinflate(base64_decode(...))包裹整段逻辑 - 检查文件修改时间异常的 PHP 文件,特别是最近 7 天内被改过但你没动过的
- 留意名字怪异的文件:如
1.php、shell.php、wp-config-backup.php(即使不在 WordPress 目录下)
为什么删了后门网站还是慢
后门可能已执行过命令,留下持久化痕迹,比如在 crontab 里加了定时任务、在系统服务里注册了常驻进程、或往数据库里插了恶意重定向脚本——这些不会因删 PHP 文件而消失。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 查定时任务:
crontab -l和cat /etc/crontab,看有没有陌生 URL 或 base64 字符串 - 查可疑进程:
ps aux | grep -E "(php|perl|python|wget|curl)",重点关注非 Web 服务器用户(如 www-data、apache)启动的长期运行脚本 - 查数据库自动注入:
SELECT * FROM wp_options WHERE option_name LIKE '%redirect%' OR option_value LIKE '%eval%';(WordPress 场景,表名前缀按实际调整) - 检查 .htaccess 是否被篡改,比如加了
RewriteRule转发到黑链页面
怎么确认某个 PHP 请求是不是后门触发点
关键不是看“能不能访问”,而是看“谁在访问、访问了什么、返回了什么”。后门往往藏在正常接口里,比如伪装成图片上传回调、API 日志上报、或 CMS 的 AJAX 处理入口。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 翻 Web 服务器 access log,用
awk '$9 == "200" && $7 ~ /\.php/ {print $1,$7,$11}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20找高频、低人访问的 PHP 路径 - 对可疑路径开启 PHP 错误日志:在对应文件开头加
error_log("DEBUG: " . print_r($_REQUEST, true), 3, "/tmp/backdoor-debug.log");,观察是否有人传$_POST['cmd']或$_GET['a']类参数 - 禁用危险函数只是临时缓解,不能替代清理。在
php.ini中设disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,但注意某些 CMS(如 Laravel 的 Artisan)会因此报错
删完后怎么防它再回来
90% 的二次入侵不是因为没删干净,而是权限没收紧、弱口令没改、CMS 没升级。后门上传通道不堵死,删一百遍也没用。
实操建议:
立即学习“PHP免费学习笔记(深入)”;
- 把网站目录属主设为非 Web 进程用户,例如
chown -R root:www-data /var/www/html,再chmod -R 755 /var/www/html,上传目录(如/uploads/)单独设chmod 755且禁止执行 PHP: - 检查所有后台账户密码强度,尤其 WordPress 的 admin、数据库 root、FTP 用户;用
mysql -u root -p -e "SELECT User,Host,authentication_string FROM mysql.user;"看有没有陌生用户 - 确认 CMS 和插件全是最新版,旧版 WordPress 的
wp-includes/wp-db.php曾被批量利用写入后门 - Web 服务器日志至少保留 30 天,配合 fail2ban 封掉反复扫
/wp-login.php或/admin.php的 IP
真正麻烦的从来不是删后门,是搞不清它当初怎么进来的。一次没查清上传入口,下次还会从同一个洞钻进来。











