烟消火灭网

我见过最离谱的一次,客户网站被挂了个PHP后门,文件名叫“upload_ok.php”,藏在图片目录里,大小只有2KB。杀毒软件扫不出来,WAF也没拦,最后还是我手动翻文件修改时间才揪出来。那后门写得

php后门检测工具

我见过最离谱的门检一次,客户网站被挂了个PHP后门,测工文件名叫“upload_ok.php”,门检藏在图片目录里,测工大小只有2KB。门检杀毒软件扫不出来,测工WAF也没拦,门检最后还是测工我手动翻文件修改时间才揪出来。那后门写得很狡猾——用base64编码把关键函数藏起来,门检变量名全是测工乱码,但逻辑就一句话:接收POST参数,门检然后拼到system()里执行。测工

这种事儿多了,门检我就养成习惯,测工每次接手服务器都要先跑一遍自己写的门检检测脚本。其实PHP后门检测没那么玄乎,核心就三招:查文件内容特征、查文件权限时间、查网络连接行为。

内容特征最直接。后门代码再加密,总得调用危险函数吧?eval、assert、system、exec、shell_exec、popen、passthru,这些函数名绕不开。我写了个正则,把全站PHP文件扫一遍,匹配这些函数的同时还检查有没有$_POST、$_REQUEST、$_COOKIE之类的输入源。两者同时出现,基本就是高危信号。

但光靠正则不够。有些后门把危险函数拆成字符串拼接,比如'sys'.'tem',变量动态调用。所以第二招是看文件元数据。正常项目文件修改时间分布有规律,突然冒出一个时间戳孤零零的PHP文件,或者某个目录下混进个名字跟周围风格完全不搭的脚本——比如全是英文文件名的地方出现个拼音命名——那就要警惕了。我见过有人把后门命名为index.php.bak,以为能蒙混过关,结果权限是777,一眼假。

第三招看行为,这招最狠但成本也高。把检测脚本部署到服务器上,监控文件系统变更和进程执行记录。后门一旦被触发,必然会有外部IP连进来,或者服务器主动往外发包。我之前抓过一个案例,后门藏在主题模板的functions.php里,每五分钟向一个俄罗斯IP发心跳包。这种动态监控能抓到静态扫描漏掉的东西,但需要持续运行,适合对安全要求高的服务器。

我自己写的工具很简单,PHP单文件,扔到服务器上命令行跑一下就行。逻辑就是递归遍历目录,跳过缓存和日志目录,对每个PHP文件做三件事:哈希匹配已知后门特征库、正则扫描危险函数加输入源组合、检查文件权限和最后修改时间。跑完输出可疑文件列表,标红高危项。

有一回扫描结果出来,发现某个插件目录下有个class-wp-cache.php,文件头注释写的是“WordPress Cache Plugin”,但代码里全是eval(base64_decode(...))。那插件我根本没装过,显然是被人传上去的。删掉之后,网站立马不卡了——原来那后门还被人用来挖矿,CPU占用一直飙在90%。

说实话,PHP后门检测工具写起来不复杂,难的是保持特征库更新。攻击者也在进化,现在有些后门用php7的opcache特性做隐藏,还有些把恶意代码藏在图片的EXIF信息里,加载时再提取。所以我的工具每隔几个月就得加新规则,平时多看看安全社区的样本库,比什么都管用。

最后提醒一句,工具只是辅助,别全指望它。定期换后台密码、关掉不用的PHP函数、给关键目录设只读权限,这些基本功做好了,后门根本进不来。工具顶多算个哨兵,真正的防线是你自己的运维习惯。

访客,请您发表评论:

© 2026. sitemap