Detecting SQL Injection via WAF Logs
When to Use
- 当调查安全事件时,需要通过 waf 日志检测 sql 注入
- 当为此领域构建检测规则或威胁狩猎查询时
- 当 SOC 分析师需要针对此类分析的结构化流程时
- 当验证相关攻击技术的安全监控覆盖范围时
Prerequisites
- 熟悉安全运营概念和工具
- 可访问测试或实验环境以安全执行
- 已安装 Python 3.8+ 及所需依赖
- 任何测试活动均需获得适当授权
Instructions
- 安装依赖:
pip install requests
- 收集 WAF 日志(ModSecurity 审计日志、AWS WAF JSON 日志或 Cloudflare 防火墙事件)。
- 运行代理程序进行解析与分析:
- 通过 15+ 正则表达式模式检测 SQLi 载荷
- 按 OWASP 注入类型对攻击进行分类(经典型、盲注型、基于时间型、UNION 型)
- 通过 IP 聚类识别持续性攻击者
- 关联多请求注入活动
- 根据响应码计算攻击成功概率
python scripts/agent.py --log-file /var/log/modsec_audit.log --format modsecurity --output sqli_report.json
Examples
ModSecurity SQLi Detection
Rule 942100 triggered: SQL Injection Attack Detected via libinjection
URI: /api/users?id=1' UNION SELECT username,password FROM users--
Source IP: 203.0.113.42 (47 requests in 5 minutes)
Classification: UNION-based SQLi campaign