发现PHP网站运行异常时,应立即排查源码后门。首先检查eval、assert等高风险函数调用,重点分析base64编码混淆代码;其次比对原始文件完整性,识别篡改或新增的可疑文件;再使用D盾等工具扫描Web Shell特征,关注$_POST与执行函数组合;同时检查文件权限与隐藏文件,避免777权限及上传目录可执行;最后分析访问日志中高频POST请求、异常IP及错误日志中的非法操作痕迹。

如果您发现PHP网站运行异常,例如页面被篡改、服务器资源占用过高或存在未知的外联请求,可能是源码中被植入了后门程序。以下是几种有效排查PHP网站源码后门的方法和技巧:
一、检查可疑的PHP函数调用
恶意后门通常依赖特定的PHP函数执行系统命令或动态执行代码。通过搜索这些高风险函数,可以快速定位潜在威胁。
1、在项目根目录使用文本搜索工具(如grep)查找包含以下函数的文件:eval、assert、system、exec、shell_exec、passthru、popen、proc_open、base64_decode、gzinflate。
2、执行命令:grep -r "eval" ./ --include="*.php",查看输出结果中是否存在可疑代码段。
立即学习“PHP免费学习笔记(深入)”;
3、重点分析混淆代码,例如长串的base64编码后使用eval执行的情况,这类代码极有可能是隐藏的Web Shell。
二、比对原始文件与当前文件的完整性
通过对比网站当前文件与原始发布版本的差异,可识别被篡改的文件。
1、获取网站最初上线时的备份文件或官方发布版本。
2、使用文件对比工具(如diff、Beyond Compare)逐一对比目录结构和文件内容。
3、重点关注被新增的PHP文件,尤其是命名伪装成正常文件(如xml.php、config.php.bak)的脚本。
4、检查文件修改时间是否异常,例如在非维护时间段内发生变更。
三、扫描文件中是否存在Web Shell特征
常见的Web Shell具有固定的代码模式和关键字,可通过特征匹配进行批量检测。
1、下载开源的PHP后门扫描工具,如D盾、LMD(Linux Malware Detect)或rkhunter。
2、将工具配置为扫描网站目录,设置规则匹配已知的后门签名。
3、查看扫描报告中列出的高危文件,并手动审查其上下文逻辑。
4、特别注意含有$_POST、$_GET、$_REQUEST与执行函数组合使用的代码块,这常用于远程命令注入。
四、检查文件权限与隐藏文件
攻击者上传后门后可能设置特殊权限以防止被删除,同时创建隐藏文件逃避常规浏览。
1、使用命令 ls -la 查看目录下所有文件,包括以点开头的隐藏文件。
2、检查PHP文件的权限是否为777或666,此类宽松权限易被利用。
3、查找名称类似 .htaccess.php 或 .shell.php 的文件,这些常被用来绕过访问控制。
4、确认上传目录是否禁止执行PHP脚本,避免通过图片上传等方式植入可执行文件。
五、分析日志中的异常行为记录
服务器访问日志和错误日志能反映后门的活动痕迹,如频繁的POST请求或执行系统命令的路径。
1、打开Apache或Nginx的access.log文件,筛选出对PHP文件的POST请求记录。
2、查找来源IP集中、请求频率高的条目,特别是访问小体积PHP文件的行为。
3、结合refer字段为空、user-agent异常等特征判断是否为自动化攻击行为。
4、检查error.log中是否有大量failed to open stream或command not found的记录,可能暗示后门尝试执行非法操作。











