网站被入侵之后溯源,分析访问日志找攻击入口

网站被入侵后,最直接的溯源线索通常藏在 Web 服务器的访问日志里。
攻击者上传 webshell、利用漏洞或暴力破解,都会在 access.log 中留下请求记录。
本文面向零基础站长,讲清楚如何备份日志、筛选可疑请求、识别攻击特征,最终定位入口并封堵。

先别急着重装,把日志和现场保留下来

发现网站被篡改或挂马后,第一反应往往是重装系统,但这会破坏溯源证据。
正确做法是先隔离,再取证。

  • 立即断开服务器外网访问,或通过防火墙只允许你的 IP 连接 SSH。
  • 备份 Web 访问日志、错误日志、系统日志到本地或安全存储。
  • 记录当前时间点,后续所有分析都围绕入侵发生前后这段时间展开。

以宝塔面板为例,Nginx 日志默认在 /www/wwwlogs/ 目录下,按站点名区分,例如 example.com.log。
如果使用原生 Nginx,通常在 /var/log/nginx/access.log。
用 scp 或宝塔文件管理下载到本地:

scp root@你的服务器IP:/www/wwwlogs/example.com.log ./backup_access.log

备份完成后,再开始分析,避免后续操作覆盖日志。

从访问日志里筛出可疑请求

攻击者留下的痕迹通常有规律:异常状态码、奇怪的用户代理、高频访问、可疑参数。
我们按优先级逐步过滤。

第一步:查看高频 IP 和请求路径

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

这条命令统计访问量最高的前 20 个 IP。
如果某个 IP 在短时间内请求上千次,很可能是扫描器或暴力破解。

第二步:筛选 POST 请求和异常状态码

Webshell 上传、登录爆破通常使用 POST。
查看返回 200 或 500 的 POST 请求:

awk '$6 ~ /POST/ && $9 ~ /200|500/ {print}' access.log | head -50

第三步:搜索常见攻击路径

攻击者常探测 /admin、/wp-login.php、/phpmyadmin、/.env、/shell.php 等。
用 grep 快速定位:

grep -Ei 'admin|wp-login|phpmyadmin|\.env|shell|eval|base64' access.log | head -50

如果日志量很大,可以按时间范围截取。
比如入侵发生在 2025-03-20 14:00 前后,先用 sed 或 grep 缩小范围:

grep '20/Mar/2025:14:' access.log > suspect.log

然后只分析 suspect.log,效率更高。

识别几种典型的入侵特征

不同攻击方式在日志中表现不同,掌握几个常见模式能帮你快速判断。

  • 暴力破解:同一 IP 对登录接口高频 POST,状态码 200 和 302 交替出现,User-Agent 可能是 python-requests 或空。
  • 文件上传漏洞:POST 请求路径包含 upload、file、import,返回 200 后紧接着访问一个陌生 .php 文件。
  • SQL 注入:URL 参数中出现 union select、sleep(、benchmark(、单引号闭合等特征。
  • 已知 CMS 漏洞:请求路径匹配特定插件或版本漏洞,例如 /wp-content/plugins/xxx/readme.txt 探测版本。

找到可疑请求后,重点看它返回的状态码和响应大小。
如果返回 200 且响应体较大,可能已经成功执行。
再结合时间点,去服务器上查找对应时间生成的文件:

find /www/wwwroot/example.com -type f -newermt '2025-03-20 13:50' ! -newermt '2025-03-20 14:10'

这条命令列出入侵时间窗口内被修改或新增的文件,重点关注 .php、.jsp、.asp 等可执行文件。

定位入口后怎么封堵和加固

找到攻击入口只是第一步,不封堵的话很快会被再次入侵。

  • 修复漏洞:如果是 CMS 插件漏洞,立即升级到最新版;如果是上传接口,增加文件类型白名单和内容检测。
  • 删除后门:根据前面 find 的结果,逐一检查可疑文件,确认是 webshell 后删除,并对比官方源码校验完整性。
  • 封禁攻击 IP:在防火墙或宝塔面板的 IP 黑名单中添加攻击源 IP。如果是动态 IP,可封禁整个 C 段,但要谨慎避免误伤。
  • 修改所有密码:包括服务器 SSH、数据库、网站后台、FTP,全部换成强密码。
  • 开启日志监控:配置日志轮转和告警,对高频 404、异常 POST 进行监控,便于下次及时发现。

如果使用宝塔面板,可以在「安全」页面查看 SSH 登录日志,在「网站」->「日志」中直接搜索访问记录,比命令行更直观。

几个容易踩坑的地方

  • 不要只删木马不修漏洞:攻击者往往留了多个后门,只删一个很快会被重新上传。
  • 日志被清空怎么办:有些攻击者会删除日志。如果发现日志缺失,检查系统日志 /var/log/secure、/var/log/auth.log,或从备份中恢复。
  • 别忽略错误日志:error.log 中可能记录 PHP 报错、文件包含失败等信息,能辅助判断攻击是否成功。
  • 溯源不是万能的:如果服务器被提权,攻击者可能清除痕迹,此时建议重装系统并做好安全基线配置。

分析访问日志找攻击入口,核心思路是:保留现场、缩小时间范围、筛选异常请求、结合文件修改时间交叉验证。
对零基础用户来说,先用 grep 和 awk 做粗筛,再人工复核,基本能定位大部分常见入侵。
处理完入口后,务必修复漏洞并加强监控,避免二次入侵。

如果你正在处理网站被入侵的问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Webshell工具原理,一句话木马执行机制讲解
下一篇
网站文件完整性校验,md5sum监控文件改动
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意