### 网页挂马排查思路

第一步：定位恶意代码位置

挂马代码通常被注入到网站的静态页面或数据库中

- 查看网站源代码：
  - 比对原始文件：从备份中恢复网站的原始文件，然后与当前服务器上的文件进行比对。使用 `diff` 或 `Beyond Compare` 等工具可以快速找出被修改过的文件
  - 查找可疑关键字：在网站所有文件中搜索一些可疑的 HTML 标签或 JavaScript 代码，例如：
    - `<script>` 标签指向外部可疑域名
    - `<iframe>` 标签，通常是 `display:none` 或宽高为0，用于隐藏恶意页面
    - `eval`、`document.write` 等可能用于动态加载恶意脚本的函数
- 检查数据库：如果网站内容是动态生成的，攻击者可能会修改数据库中的字段（如文章内容、广告位），注入恶意代码
  - 检查数据库备份：将数据库备份恢复到本地进行分析，与当前数据库进行比对
  - 搜索恶意代码：在数据库的 `content`、`description` 等字段中搜索 `<script>`、`<iframe>` 等关键字。
- 分析日志文件：
  - Web日志：检查 Web 服务器的访问日志（`access.log`），看是否有异常的 `POST` 请求，这可能与数据库注入有关
  - 操作系统日志：检查操作系统的事件日志，看是否有异常的登录或文件修改记录

第二步：分析恶意代码行为

找到恶意代码后，不要立即删除，而是先分析它的行为。这有助于我们了解攻击的完整链条

- 代码解密：挂马代码通常会经过混淆或加密，以逃避检测。你需要对代码进行解密，以还原其真实功能
- 行为分析：
  - 下载木马：恶意代码是否会从某个URL下载并执行可执行文件？
  - 漏洞利用：它是否利用了浏览器或插件（如 Flash、Java）的漏洞？
  - 数据窃取：它是否会窃取用户数据（如登录凭据）并发送到攻击者的服务器？
- 威胁情报查询：将恶意代码中出现的域名、IP 地址或文件哈希值提交到威胁情报平台进行查询，了解其是否与已知的恶意活动相关

第三步：清除与加固

在完成分析后，就可以进行清除和加固工作

- 清除恶意代码：
  - 删除文件：彻底删除被注入恶意代码的文件，并从备份中恢复
  - 修复数据库：删除数据库中被注入的恶意内容
- 漏洞修复：
  - 程序漏洞：如果挂马是通过Web应用漏洞（如SQL注入、文件上传）实现的，需要立即修复这些漏洞
  - 补丁升级：升级操作系统、Web服务器、网站程序和插件到最新版本，以修补已知的安全漏洞
- 权限收紧：
  - 最小权限原则：Web 服务器进程（如Nginx、Apache）应以低权限用户运行，限制其对文件系统的写权限
  - 文件权限：对网站目录和文件设置严格的读写权限，防止被再次修改