用网站木马扫描的思路检查用户访问路径,核心不是扫描服务器文件,而是沿着“用户请求进入网站后依次经过哪些环节”收集证据,判断在哪一步被跳转、篡改或注入。下面从一个假设例子展开,说明具体步骤和容易犯的错误。
用户访问路径指从浏览器发出请求,到最终看到页面内容之间经过的环节,通常包括:DNS解析、CDN或反向代理、Web服务器、应用代码、数据库、返回的HTML与JS。木马常在这些环节中的某一处插入跳转脚本、恶意iframe或篡改链接。
检查前先固定变量:用同一台设备、同一网络、同一浏览器,分别测试首页、栏目页和一篇内容页。如果只有部分页面异常,说明问题更可能在应用代码或数据库;如果所有页面都异常,优先查服务器配置、CDN或公共模板文件。
假设某站点首页打开正常,但从搜索引擎进入某篇内容页时,会先显示正常内容,随后跳到一个陌生页面。这个现象有多种可能原因,不能直接断定是木马,需要逐步排除。
window.location、location.href、eval、iframe等关键词。注意:这些词也可能出现在正常统计代码或广告代码中,需要结合来源判断。curl -I或浏览器网络面板查看响应头,确认是否有Location字段。有则是服务器端跳转,没有则更可能是前端脚本。常见错误是只清空浏览器缓存就下结论,或者只扫描根目录而忽略子目录、上传目录、缓存目录和数据库中的内容。另一个错误是把CDN节点缓存的内容当成源站内容,导致删了源站代码但用户仍看到旧页面。
判断结果时注意:如果源站返回正常、CDN返回异常,问题在CDN缓存或节点;如果源站返回就异常,继续往应用和数据库查。只有定位到具体环节,网站木马扫描才有明确目标,而不是反复全盘扫描。
先按上面的检查项记录一次完整请求链路,把异常页面的请求头、响应头、页面源码和服务器日志保存下来。然后根据差异出现的位置,只清理和加固对应环节,再重新访问同一路径验证跳转是否消失。