首页/安全/取证与溯源速查/访问日志攻击特征判读
日志溯源53 条

访问日志攻击特征判读

扫描与利用在访问日志有形态:4xx 密集、异常路径(历史组件路径/穿越序列)、异常 UA、参数含拼接符号——先模式后个案。

取证与溯源速查安全更新于 2026-10-13

攻击在访问日志里的形态

Web 攻击在访问日志里通常有可识别的形态:短时间内大量 4xx(扫描与探测)、异常路径(历史组件路径、配置文件、目录穿越序列)、异常 User-Agent(扫描器或空值)、参数中带拼接符号(注入尝试)。判读方法是先看模式再落到个案:先统计状态码分布与路径分布找出异常聚集,再针对少数可疑请求去应用日志、错误日志与文件系统侧印证是否真的造成了影响。日志里的可疑请求不等于攻击成功。

基本信息

日志位置Nginx/Apache 的 access.log、IIS 的 W3C 日志
常见格式combined 格式:来源 IP、时间、请求行、状态码、字节数、Referer、UA
关键字段状态码、请求路径与查询串、请求方法、UA、响应字节数
配套日志error.log、应用日志、WAF 日志、上游服务日志
环境干扰反向代理会让来源地址变成代理地址,需查 X-Forwarded-For 类字段
分析口径先统计模式,再逐条核实是否造成实际影响

典型使用场景

  • 从海量访问日志中筛出扫描与利用候选请求
  • 确认某个已知漏洞是否被真正利用(需要成功痕迹,而非仅探测)
  • 判断攻击来源是单一 IP 还是分布式
  • 把可疑请求时间与文件落地、进程创建时间对齐,形成证据链
  • 评估影响面:哪些接口被访问、是否有数据被读取的迹象
  • 为 WAF 规则与虚拟补丁提供输入

模式统计与精筛

模式统计与精筛
# 状态码分布:4xx 密集往往对应扫描
awk '{print $9}' access.log | sort | uniq -c | sort -rn | head
# 按来源 IP 统计请求量,找出异常高频来源
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20
# 目录穿越与敏感路径特征(先看原始编码,再做解码后匹配)
grep -Ei '(\.\./|%2e%2e|/etc/passwd|/\.env|\.git)' access.log | head -30
# 异常 User-Agent 与空 UA
awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -rn | head -20
# 取可疑 IP 的完整请求序列,按时间排开
awk '$1=="203.0.113.9"' access.log | head -50

模式与判读

模式可能含义确认方式
4xx 密集扫描与路径探测看是否集中在少数来源,是否伴随 200 的少数命中
异常路径针对特定组件或配置文件的探测与组件版本、漏洞公告时间对照
异常 UA 或空 UA自动化工具与扫描器结合请求频率与路径规律判断
参数含拼接符号注入类尝试到应用日志与数据库侧确认是否有执行痕迹
状态码 200 且响应体异常大可能的数据外带核对接口语义与响应大小的正常范围
扫描器 UA 与路径特征更新很快,仅凭特征库判断容易误判;确证以具体利用行为与造成的后果为准,特征只用于缩小候选范围。
做路径特征匹配前先做 URL 解码,直接匹配原文会漏掉编码变体(大小写、双重编码、Unicode 编码)。同时注意业务系统自身也会产生 4xx/5xx,先排除发布与配置变更带来的干扰。

易错点

  • 业务异常也会产生密集 4xx/5xx,未排除发布与配置变更就当作攻击
  • 只做原文匹配不做解码,漏掉编码变体的探测请求
  • 把探测请求当作利用成功,未到应用与文件系统侧确认实际影响
  • 忽略反向代理场景,日志中的来源 IP 是代理地址,溯源方向错误
  • 不做基线统计直接逐条翻日志,海量条目里漏掉关键请求

数据来源与参考

  • OWASP 日志分析指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌