使用Burp Suite高效测试SQL注入和XSS漏洞,需要掌握核心模块的使用技巧,并配合合适的插件来提升效率。以下是详细的测试方法和工具推荐。
一、SQL注入测试方法
1. 基础检测流程
发现注入点:在目标页面输入单引号'或特殊字符,观察响应是否返回数据库错误信息(如MySQL server version)。如果存在错误,说明可能存在SQL注入漏洞。
验证注入类型:
联合查询注入:使用
UNION SELECT逐步增加列数,直到响应正常,观察返回数据中哪些列可显示数据基于时间的盲注:使用
SLEEP()函数测试,如果响应延迟,说明条件成立基于报错的注入:构造报错语句如
AND 1=CAST((SELECT version()) AS NCHAR(100)),若页面显示数据库版本则注入成功
2. Intruder模块高效使用
攻击模式选择:
Sniper模式:逐个测试单个参数,适合单一位置注入测试
Pitchfork模式:多个参数使用不同字典,按位次对应关系爆破
Cluster bomb模式:多个字典交叉组合,适合用户名密码爆破
Payload配置技巧:
使用
Simple list加载常见SQL注入payload字典配置Payload Processing规则,如URL编码、Base64编码等
设置Grep-Match功能,自动标记包含特定关键词(如"error"、"syntax")的响应
3. Repeater模块手动验证
将可疑请求发送到Repeater,手动修改参数进行精细化测试:
测试不同闭合方式:
'、"、')等尝试绕过过滤:使用
/**/替代空格、双写关键词、使用CHAR函数观察响应长度和内容差异
二、XSS漏洞测试方法
1. 反射型XSS检测
基础payload测试:
在输入框或URL参数中输入
<script>alert(1)</script>观察响应是否直接输出脚本标签
如果被过滤,尝试闭合标签:
"><img src=x onerror=alert(1)>
绕过技巧:
大小写绕过:
<sCript>alert(1)</sCript>双写绕过:
<scr<script>ipt>alert(1)</script>编码绕过:使用URL编码或HTML实体编码
事件处理器:
onclick=alert(1)、onerror=alert(1)
2. 存储型XSS检测
在可存储用户输入的位置(如评论、留言板)插入XSS payload
查看其他用户访问时是否执行恶意脚本
使用Intruder模块批量测试不同payload
3. DOM型XSS检测
使用浏览器开发者工具,搜索
document.write、innerHTML等危险函数观察URL参数是否被直接传递给这些函数
测试
location.search、location.hash等源
三、必备插件推荐
1. SQL注入相关插件
SQL Injection Scout:
被动扫描检测SQL注入漏洞
支持多种payload类型和编码方式
自动标记可疑响应
CO2插件:
与sqlmap联动,自动生成sqlmap命令
支持数据库、表、列、用户和密码的枚举
2. XSS相关插件
Chypass_pro:
利用AI技术检测XSS漏洞并智能绕过WAF
自动化分析、构造和测试复杂payload
reflector:
快速辅助找到XSS反射点
自动探测特殊字符,快速定位可疑参数
3. 通用增强插件
HaE (Highlighter and Extractor):
自动高亮敏感信息(密码、密钥、PII数据)
结构化提取API端点、参数等信息
Logger++:
完整记录HTTP流量,支持海量数据存储
高级过滤和搜索功能,快速定位关键请求
Turbo Intruder:
高性能爆破工具,速度比原生Intruder提升数十倍
支持异步I/O和高效队列,适合高频请求场景
四、实战技巧总结
靶场环境:使用DVWA、SQLi-Labs等靶场进行练习,将安全级别设置为Low
自动化扫描:在Target → Site Map中右键选择Active Scan,配置SQL injection相关检查项
绕过WAF:使用Decoder模块对payload进行URL编码、双重编码(如
%2527代替')响应对比:使用Comparer模块对比不同payload的响应长度和内容,快速识别漏洞
合法测试:务必在授权范围内使用,推荐使用合法靶场环境进行测试
通过掌握这些核心模块的使用技巧,配合合适的插件,可以大幅提升SQL注入和XSS漏洞的测试效率。