我劝你先冷静 · 91黑料 - 我当场清醒:原来是恶意脚本|我整理了证据链

我劝你先冷静 · 91黑料 - 我当场清醒:原来是恶意脚本|我整理了证据链

我劝你先冷静 · 91黑料 - 我当场清醒:原来是恶意脚本|我整理了证据链

最近在浏览一个看似普通的页面时,页面出现了异常跳转和频繁的广告弹窗。那一刻我停下来,冷静下来自查:不是页面本身的问题,而是一个被注入的恶意脚本在背后作祟。把调查过程和证据链整理出来,既是为了把事实摆清楚,也是给遇到类似情况的人一份可操作的参考。

事情经过(简短回放)

  • 发现异常:页面加载后短时间内出现重定向、自动弹窗、以及请求外部未知域名的网络行为。
  • 当场分析:打开开发者工具、抓包并保存了日志、下载了可疑脚本进行静态分析。
  • 最终结论:确实存在被注入的恶意脚本,具备动态加载、代码混淆、外联下载等典型特征。

证据链(按我查到并保存的顺序) 1) 可复现的触发路径

  • 在相同浏览器和同一 URL 下,多次重现跳转和弹窗行为。记录了触发时间、URL 参数与 referer,形成初步时间线。

2) 前端抓包与网络请求(HAR)

  • 使用浏览器 Network 面板和抓包工具(如 Fiddler、Burp 或 Chrome 的导出 HAR)保存了所有请求。
  • 发现页面加载过程中有一条或多条请求指向陌生域名(后缀异常、刚注册或使用免费域名服务)。这些请求返回了被混淆的 JavaScript 文件。

3) 可疑脚本的静态特征

  • 文件中存在明显混淆模式(例如大量十六进制/Unicode 转码、长的 base64 字符串、eval(function(p,a,c,k,e,d)…))。
  • 代码中出现了 document.write、innerHTML 注入、动态创建 script 标签、setTimeout(eval(…)) 等危险操作模式。
  • 我把脚本保存为样本文件,计算了 SHA256/MD5 并提交到 VirusTotal 进行交叉比对(保存查询记录作为证据)。

4) 日志与访问痕迹

  • 服务器访问日志显示在脚本首次出现前后有可疑 POST/GET 请求到管理面板或上传接口,且来源 IP 与常见用户不同。
  • 若有 CDN 或 WAF 日志,能看到外联域名或恶意请求的时间戳,和前端捕获的时间点完全一致,形成关联证据。

5) 动态行为分析(沙箱/调试)

  • 在受控环境(本地虚机)中打开脚本,观察其动态行为:是否下载二进制、是否连接特定域名、是否试图窃取 cookies/localStorage 或植入后门。
  • 把抓包结果(TCP/UDP 握手、目标 IP、端口、HTTP 请求体)与静态分析结合,形成行为证明。

6) 域名与注册信息

  • 对外联域名做 WHOIS、DNS 查找:若域名注册很新、隐藏注册信息或指向低信誉托管商,说明风险更高。将查询截图或输出保存作为附证。

我当场清醒:脚本到底在做什么?

  • 混淆与延迟执行:通过编码与 eval 隐藏真实逻辑,延迟执行以规避简单扫描。
  • 动态加载器:主脚本只是一个 loader,真正的恶意 payload 从远程服务器下载。
  • 页面劫持与广告注入:修改 DOM、插入 iframe 或弹窗来牟利或诱导下载。
  • 数据收集(可选):部分脚本尝试读取 localStorage/cookie、截取表单、记录按键或向外发送敏感信息。
  • 持久化:尝试写入可被下次访问触发的脚本位置(如模板、数据库、CMS 插件目录)。

我做过并建议你也可以马上做的排查与修复步骤

  • 保留原始证据:保存 HAR、脚本文件、服务器日志、抓包 pcap、样本哈希和截图。不要轻易清理原始文件,必要时做镜像备份。
  • 下线或切换到维护模式:如果站点仍在被持续利用,临时下线可减少二次损害。
  • 查找并移除注入点:从模板、插件、上传目录、数据库字段(如文章内容、options)逐项 grep“eval(”等可疑特征。
  • 更改所有相关凭证:管理账户、数据库、FTP/SFTP 密码与服务器密钥,排除被盗凭证继续利用的可能。
  • 阻断与黑名单可疑域名:在防火墙或 hosts 文件里暂时屏蔽外联域名 / IP。
  • 恢复干净备份:若有已知干净的备份,可以考虑回滚并在隔离环境里逐项核对差异。
  • 更新与修补:更新 CMS、插件、依赖库、系统补丁,关闭不必要的上传/执行权限。
  • 强化策略:部署 Content-Security-Policy、Subresource Integrity(SRI)、设置 SameSite/HttpOnly Cookie、限制文件上传类型与大小。
  • 持续监控:启用文件完整性监控、异常流量告警与定期安全扫描(静态与动态)。

如何让你的证据更容易被第三方接受(例如托管商或调查人员)

  • 可复现性:列出重现步骤,提供时间戳与示例 URL。
  • 原始数据:提供 HAR、日志片段、脚本原始文件与哈希值。
  • 时间线:把事件按时间排列,标注新增文件、可疑请求与管理员操作时间,便于找出入侵链路。