网站被挂马,最麻烦的不是它改了什么,而是它改的那块你平时根本不看。挂马网站3种典型症状,前两种多数人拿眼睛还能扫出来,最后一种最难察觉,有人的站被挂了小半年,等到搜索引擎那边出了状况,才回头查自己。

第一种:搜索结果里的标题先变味
最省事的验法就是 site 一下自己的域名,看标题和描述还是不是你当初写的那句。挂马里有很大一部分动作就是往 title、meta description 里塞词,塞的往往是博彩、娱乐、开户这类跟站点八竿子打不着的东西。也有手更细的,标题一个字不动,快照摘要里却冒出一堆你没写过的句子。这时候别急着说搜索引擎抽风,先把源码翻出来对一遍。还有一种情况容易看岔:首页看着干干净净,是因为注入或者跳转只对来自搜索引擎的来路生效,你从收藏夹点进去,看到的当然是自己那版。
第二种:页面凭空多出来一批
搜索引擎给的收录数,跟你 sitemap 里列的对不上,差得还挺明显,这个信号就值得翻一翻了。挂马的人喜欢在站上种「暗页」:URL 挂在正常目录下,文件名是随机字符,站内导航没有任何入口,只有从搜索结果或者外链才进得去。这些页面替他做生意,出事算在你头上。查起来不复杂,site 结果往下多翻几页,看有没有不认识的路由;更土但更有效的办法是把站点目录整个拉一份列表,跟上次备份比,多出来的 .php、.html 一个个点开看。目录里那种名字起得规规矩矩的文件反而安全,乱码一样的才要多看两眼。
挂马网站3种典型症状最后一种最难察觉,因为它会挑人
第三种是条件触发,圈里叫 cloaking。只有 UA 里带 Mobile 才跳,只有 referer 来自搜索引擎才跳,只有境外 IP 才跳。你自己用电脑打开一切正常,换个浏览器还是正常,叫外地朋友帮着看也说没事。它专挑不会跑来跟你反馈的人下手——真实访客。我碰到过一次,站长发消息说「我这站好好的啊」,我让他把 WiFi 关掉用手机流量开,页面直接跳走了。就这么点差别。所以判断一个站有没有被挂,别只用自己那台机器、自己那条网络去验,那不叫抽样,那叫偏见。
隐藏链接和图片马,是同一路的藏法
页面里塞 a 标签,外层套 display:none,或者字体颜色跟背景一个色,或者绝对定位到屏幕外面去,人看不见,爬虫看得见。还有往上传目录塞图片马的,一张 .jpg 旁边跟一个同名的 .php,访问那个 php 就执行。这类文件在面板的文件管理器里不显眼,得按修改时间排序。命令不复杂,find 后面跟路径和 -mtime -7,最近一周动过的文件全列出来,哪些是自己改的心里有数,剩下的就多看两眼。CMS 的模板文件、footer、公共 js 也是高发位置,尤其那种全站都引用的 js,尾部多一行十六进制串,肉眼很容易滑过去。
别只盯页面,日志里的动静更早
页面是结果,日志是过程。access.log 里翻一翻有没有 UA 空着的请求、短时间里反复打 wp-login.php 或 xmlrpc.php 的 IP、一堆 POST 到奇怪路径的记录。这些不代表已经挂上了,但至少说明有人在门口转。后台用户列表也顺手看一眼,有没有多出来一个你不认识的管理员账号,这个比改文件更常见,也更容易被漏掉,因为大多数人只看页面长得对不对。
顺手分清挂马和劫持,不然白忙一场
还有一类现象长得像挂马,其实不是。打开网站跳到别处去,可能是 DNS 被改、可能是本地路由或者运营商那边的问题、也可能是 CDN 回源配错了。区别的办法很土:命令行 curl 一下你的域名,看返回的内容是谁的。如果服务器返回的 HTML 是干净的,浏览器里却跳,那问题在路上,不在站上。反过来 curl 出来的内容就已经带着别人的东西,那才轮到翻文件、翻数据库。这一步不做,很容易在错的地方折腾半天。
清完之后,门得堵上
把被改的文件还原,只是把这一轮按下去。程序版本该升的升,插件别装一堆用不上的,上传目录禁止执行 PHP,权限别图省事给 777,后台密码换掉,能开两步验证就开。备份要留一份确认干净的,别把已经被感染的备份又滚回去,那等于白干。至于以后还会不会中,谁也不敢打包票,攻击面是动态的,补丁和公告以程序官方、服务商页面上的说明为准,看到就跟着打。
真要我给个顺序:先 site 看标题和收录数,再用手机流量从搜索结果点进去看跳不跳,然后看目录里最近被改过的文件,最后翻日志和后台账号。四步走完,多数情况心里就有数了。剩下那些一时半会看不出来的,别硬扛,把站先备份一份下来再动,顺序别搞反。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!