攻击行为可分四阶段:信息收集(高频404扫路径)、漏洞探测(含union/select等关键词)、漏洞利用(POST增多、响应体突增)、后门维持(访问非常规文件、UA为空且200稳定)。

直接看日志里的行为规律,比猜工具或查IP更可靠。攻击者在靶场或真实环境里留下的请求不是随机的,而是有明确阶段和痕迹可循。
先定位关键字段,确保日志格式够用
默认的 Combined Log Format 已包含大部分线索,但要分析攻击模式,必须确认日志里有这些字段:
-
%h:客户端真实 IP(注意 CDN 或反向代理场景,需配合
%{X-Forwarded-For}i) - %t:精确到秒的时间戳,用于还原时间线
- %r:完整请求行,含方法、路径、协议,是识别 payload 的核心
- %>s:状态码,区分试探(404)、成功(200)、错误(500)等阶段
- %b:响应体大小,异常大可能对应数据泄露,为 0 可能是探测类请求
- %{User-Agent}i 和 %{Referer}i:辅助判断是否为扫描器或伪装流量
如果缺字段(比如没记录 Referer),awk 按列取值会错位,后续所有统计都不可信。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
按攻击阶段拆解请求特征
攻击不是一次点击,而是一连串有逻辑的操作。从日志里能清晰分出四个典型阶段:
-
信息收集:大量 404 响应,URI 集中扫常见路径(
/admin/、/phpmyadmin/、/backup/、/wp-config.php),同一 IP 短时间内高频请求 -
漏洞探测:URI 中含 SQL 注入关键词(
union select、and 1=1、' OR '1'='1)、目录遍历(../../etc/passwd)、命令执行(cmd=id、system(whoami)) -
漏洞利用:POST 请求明显增多,
%r中出现非标准参数(如POST /upload.php?file=shell.php),或响应体大小突增(如返回系统命令结果) -
后门维持:访问非常规文件(
/1.php、/a.php、/x.php),User-Agent 突然变为空或极简(-),且状态码稳定为 200
用原生命令快速验证可疑行为
不用装新工具,Linux 自带命令就能筛出高置信度线索:
- 找 SQL 注入痕迹:
grep -i "union\|select\|and 1=1\|order by" /var/log/apache2/access.log | head -10 - 找目录遍历尝试:
grep "\.\./\.\." /var/log/apache2/access.log | awk '{print $1, $7, $9}' | sort | uniq -c | sort -nr - 找高频扫描 IP:
awk '$9 == "404" {print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10 - 找异常小响应(常为探测):
awk '$9 == "200" && $10
注意容易忽略的干扰项
真实日志里混着大量噪音,几个关键点必须提前排除:
- CDN 或 WAF 回源 IP 会覆盖真实客户端 IP,若未配置
%{X-Forwarded-For}i,直接统计$1会误判整段流量来自一个节点 - 搜索引擎爬虫也会扫 404,但通常带合法 User-Agent 且 Referer 为空,而攻击者常伪造 UA 或留空
- 日志轮转后,
access.log.1.gz里的旧攻击可能被遗漏,别只查当前日志 - 某些攻击不产生 access.log 记录(如 Slowloris),需结合
mod_status或连接数监控交叉验证

















