PHP漏洞预警这三个字,多数人是等到首页被跳转、搜索结果里冒出一堆莫名其妙的页面,才第一次认真去看。顺序反了。真正的信号来得比事故早,早得还不是一点半点——它就藏在文件时间、进程列表和访问日志里,只是平时看着不像漏洞,像日常噪音。下面这三个信号,任何一个冒出来,都别先安慰自己「大概是缓存没刷」。

第一个信号:文件修改时间扎堆在同一分钟
正常运营的站,php 文件的改动是零散的。改个模板、修个函数,一天动几个文件顶天了。可你要是用 find 按时间筛一遍,发现某天凌晨几十上百个 .php 文件的 mtime 挤在同一两分钟里,而那天你压根没上线——这不是运维勤快,这是有人在批量落地。PHP 漏洞预警最典型的开局就是这幅画面:脚本顺着一个没打补丁的插件或者上传点钻进来,先写一个 webshell,然后横向复制一圈,把能写的目录都塞满。
还有一种更阴的,文件时间没变,内容变了。有些手法会保留原始 mtime,这时候光看时间完全不管用,得上哈希。拿一份干净备份或者官方安装包,md5sum 或者 sha256sum 跑一遍,对不上的挑出来单独看。这条我早年吃过亏,只盯时间,结果一个后门藏在图片目录里,文件名还是 .jpg.php 那种,躺了小半年没人发现。
PHP漏洞预警里最凶的信号:服务器自己往外跑
网站的正常状态是别人来访问你,出站流量只是零星回包。要是监控里看到这台机器在主动往陌生 IP 的某个高位端口发起连接,持续的、有节奏的,那基本跟业务没关系。挖矿、反弹 shell、拿你的机器去爆破别人的站,都是这个特征。CPU 无故飙高往往和它是同一件事的两面,别只盯着负载图看。
查的时候别只看 top。ss -antp 或者 netstat -antp 看一眼 established 的对端,认不出来的 IP 记下来;再翻 crontab -l 和 /etc/cron.d 下面,很多后门不常驻进程,靠定时任务每隔几分钟拉一次,进程列表里干干净净;systemctl list-units 里多出来的陌生 service 也顺手扫一遍。这几个位置是重灾区。
第三个信号:日志里那些参数长得不像人填的请求
日志量大,没人天天看,但异常是有形状的。比如同一个 IP 短时间里反复请求某个 .php 文件,带的参数是一长串 base64 样的乱码;或者 POST 的目标是一个你根本不记得存在的文件;再或者 user-agent 明显是脚本伪装的。这些不代表已经成功,但说明有人在试。PHP 漏洞预警的价值就在这一步——人家还在试的时候你看见了,还有机会拦在门外。
顺带提一个特别容易漏的地方:文件权限。正常应该是目录 755、文件 644,属主是运行用户。哪天冒出一堆 777,或者上传目录里出现了 .php 文件(尤其是 .php5、.phtml、.jpg.php 这类伪装),那就等于把答案写在脸上了。
有个信号经常被误判成入侵
见过不少人,一看到 phpinfo 页面能从公网打开,或者报错信息把绝对路径全吐出来,就喊被黑了。这两件事确实是风险,但它属于配置疏漏,不是入侵。判断标准其实很简单:有没有「多出来的东西」——多出来的文件、多出来的进程、多出来的账号、多出来的计划任务。四条都没有,那大概率就是加固问题,关掉 display_errors、删掉 phpinfo、把目录列表禁了就行。混淆这两类,最容易把时间浪费在错误的方向上,越查越慌。
真要动手,按这个顺序走
我一般这么排:先把可疑文件挪走而不是直接删,留着当证据;然后对比文件清单,找出新增和改动的部分;接着翻日志定位入口,看是哪个插件、哪个上传点被穿了;最后才是清进程、清定时任务、改密码和密钥。顺序反了会反复,清完没两天又回来,因为入口还开着。
加固那块不用搞得多复杂。disable_functions 里把 system、passthru、shell_exec、popen、proc_open 这些按需关掉,open_basedir 限一下可访问目录,上传目录禁止执行 PHP,Web 服务跑在低权限用户下。都是常识,但被穿的站里能有一半没做。具体写法和可用项各家面板、各个 PHP 版本不完全一样,以官方文档或服务商页面说明为准,别照着网上的老帖子一把梭。
时间账算一遍就明白了
日志保留周期别设太短,备份别只留一份还放在同一个账号下面,文件清单定期存一份哈希。这些东西平时看着纯属白费功夫,出事那天就是你的地图。另外主机层面能开的安全防护、告警、快照,能用就用上,花的那点钱和排查一晚上比,真不算什么。
回到那三个信号:文件时间扎堆、服务器主动外连、日志里参数不成人形。出现任何一个,别急着下结论说被入侵,但也别放着不管。花半小时把「多出来的东西」找一遍,找到了就按流程清,找不到就当做了次体检。安全这活儿没什么一劳永逸,无非是隔段时间回头看一眼。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!