首页干净不等于没被挂马。这句话听着像废话,可我自己接手过的站里,十有八九是这么个情况:站长打开网站首页,右键看源码,翻两屏没发现奇怪的 iframe,就松口气说没事。真没事吗。网站挂马一般在什么位置这事儿,跟小偷进屋子一个道理,他不会站在客厅正中央等你回来,多数是窝在柜子后面、天花板上、储物间那些你一年都想不起来看一眼的角落。

网站挂马一般在什么位置,先把这几个目录翻一遍
按经验排,落点最密集的是这几处:站点根目录的 index.php、主题目录里的 header.php、footer.php、functions.php、配置文件 wp-config.php 或者 config.php、上传目录 uploads、缓存目录 cache、runtime,还有老系统里的 plus 目录、e/data 目录这类。这些地方的文件有个共同点,体积大、内容杂,插进去一行两行代码,你不逐行读根本发现不了。我见过最省事的一种,就在 footer.php 最后一行加了个 script,全站每个页面都带上了,查首页源码反而容易漏,因为没人会把首页源码拉到底。
被包含的文件,是藏马的重灾区
一个站少说几十个文件互相 include,攻击者只要在一处动手,全站跟着中招。所以查的时候别从首页往下点,反过来,直接搜被引用最多的那几个文件:头部、尾部、公共函数、数据库连接。命令行的办法粗暴但好使,进站点根目录跑一条 grep 递归搜常见特征串,eval、base64_decode、gzinflate、assert、@include 这些词正常业务代码里几乎不会大量出现。搜出来的结果不一定都是马,但至少把范围从几千个文件缩到十几个。
数据库和模板里的马,截图看不出来
这块最容易漏。后台设置项、小工具、自定义 HTML、单页模板,都能塞脚本。WordPress 的 options 表里 siteurl 和 home 被改过一个字母,整站跳转,你在文件里翻到天亮也找不着。文章正文末尾追加一段隐藏 div,编辑器里显示正常,前端渲染出来才带东西。办法是导出数据库,用文本编辑器搜 iframe、script、onload、document.write 这类,逐条看。数据量大的话就只搜最近修改的那几张表,改的时间点通常跟异常出现的时间差不多。
图片、JS、CSS 这些静态文件也会带毒
很多人默认只有 php 文件才可能被挂,静态资源是安全的。不是。图片马这个东西存在很久了,往 jpg 末尾拼接一段 php 代码,再配合一条把 jpg 当 php 解析的规则,就成了。前端 JS 文件末尾追加几十行加密字符串也很常见,浏览器照跑不误,普通用户完全无感。CSS 里 @import 一个远程地址,同样能加载外部内容。这类文件的特点是体积大,追加几百字跟没加一样。要是站点接了 CDN,记得回源拉一份对比,别只查 CDN 上那份。
伪静态规则、.htaccess 和 nginx 配置里的跳转
这一层最阴,因为它不在网站目录里,你把整站打包下载回去慢慢查,压根带不走这些配置。.htaccess 里加一行 RewriteRule,指定某个 UA 或某个来源跳博彩站;nginx 的 conf 里 include 一个不起眼的文件;面板里的计划任务定时拉一段脚本回来执行。查的时候别只看站点目录,服务器上的 vhost 配置、面板计划任务、crontab 都得过一遍。看不明白的规则先注释掉测试,别直接删,删错了站就打不开了。
手机端页面、错误页和快照,是最容易忽略的三处
有一类马看 UA 下菜,PC 浏览器访问一切正常,换成手机 UA 或者搜索引擎蜘蛛的 UA,立刻跳走。所以光用自己电脑看是没用的,至少拿 curl 换几个 UA 拉一次源码对比,命令里 -A 后面跟 UA 字符串,两边 diff 一下,差异立刻出来。404 页面和搜索无结果页也常被塞东西,因为平时没人访问。还有个笨办法但很管用:把搜索引擎快照里的源码存下来,跟现在的源码比,被改过的地方一眼就能看见。
按修改时间找文件,比一个个打开靠谱得多
不知道从哪下手的时候,就按时间找。进站点目录跑 find,按 mtime 列出最近几天改动过的文件,正常运营的站,代码文件的修改时间应该集中在你自己发版那几天,其余时间冒出来的都值得看一眼。再顺手查两类:权限给到 777 的目录和文件、名字带空格或者双扩展名的文件、ls -la 才看得见的隐藏文件。这几类里出问题的比例不低。有备份的话直接 diff 整个目录,哪个文件被改过一目了然,这也是平时留一份干净备份的价值所在。
真碰上了,顺序别乱:先整站打包留一份现场,别急着删,不然回头想查入口都查不了;然后按时间排序找改动、跟备份比对、清掉可疑代码;接着改所有后台和数据库密码、换掉密钥、把上传目录的执行权限关掉;最后翻一遍访问日志,看看人家是从哪个口子进来的。自己搞不定的就找服务商协助,具体处理流程和取证要求以服务商或官方页面说明为准。至于只查首页这件事,当成日常顺手看一眼还行,真拿它当排查手段,基本等于没查。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!