burpsuite 越权分析插件"Auth Analyzer Plus"
字数 1318 2025-08-24 07:48:09
BurpSuite 越权分析插件 "Auth Analyzer Plus" 使用与开发指南
1. 越权漏洞基础概念
越权漏洞定义:
- 当普通用户能够访问只有管理员有权访问的页面或功能时,称为越权漏洞
- 典型场景:已知admin账号密码和普通用户账号密码,普通用户能访问admin专属功能
测试场景扩展:
- 跨站点越权测试:当A网站和B网站使用同一套系统时
- 测试A网站管理员与B网站普通用户之间的权限关系
- 这种测试可以发现系统本身的通用越权漏洞
2. 传统越权测试插件的局限性
现有插件功能:
- Authz和Auth Analyzer等插件通过修改cookie来模拟不同用户
- 仅支持同一域名下的cookie替换测试
局限性问题:
- 无法直接测试跨站点的越权(A站管理员 vs B站普通用户)
- 插件仅替换请求头中的Host值,实际访问的仍是原网站
- 同一系统在不同站点的配置可能导致越权漏洞表现不一致
3. 插件改造核心技术
3.1 基础请求修改技术
修改Cookie的核心代码:
if (messageIsRequest) {
IRequestInfo analyzeRequest = helpers.analyzeRequest(messageInfo);
List<String> headers = analyzeRequest.getHeaders(); // 获取headers
// 遍历并替换Cookie
for (String header : headers) {
if (header.startsWith("Cookie")) {
headers.remove(header);
headers.add("Cookie: new cookie");
}
}
// 输出调试信息
for (String header : headers) {
stdout.println("header "+header);
}
}
3.2 跨站点Host替换技术
关键实现步骤:
- 从修改后的headers中提取新的Host值
- 使用提取的Host构建新的HTTP服务
- 向新Host发起实际请求
核心代码实现:
// 提取修改后的Host
String newHost = "";
for(String header : modifiedHeaders) {
if (header.startsWith("Host")) {
newHost = header.substring(header.indexOf(":")+1).trim();
}
}
// 构建新的HTTP服务并发送请求
IHttpService service = originalRequestResponse.getHttpService();
IHttpService newService = BurpExtender.callbacks.getHelpers().buildHttpService(
newHost,
service.getPort(),
service.getProtocol()
);
IHttpRequestResponse sessionRequestResponse = BurpExtender.callbacks.makeHttpRequest(newService, message);
4. Auth Analyzer Plus插件改造详解
4.1 源码修改关键点
定位关键代码:
- 在
/src/com/protect7/authanalyzer/controller/RequestController.java中 - 搜索
makeHttpRequest找到请求发送的核心逻辑
修改逻辑:
- 检查用户是否指定了新的Host
- 如果指定了Host,则构建新的HTTP服务
- 使用新Host而非原始Host发起请求
4.2 插件使用流程
跨站点越权测试步骤:
- 配置插件:设置A网站管理员cookie和B网站普通用户cookie
- 指定目标Host为B网站的域名
- 使用A网站管理员账号访问各项功能
- 插件会自动将请求发送到B网站并携带B网站普通用户的cookie
配置示例:
源请求:A网站管理员cookie
目标Host:www.B-site.com
目标Cookie:B网站普通用户cookie
5. 实际应用场景分析
适用场景:
- 多租户SaaS系统的权限测试
- 同一系统部署在不同客户环境时的通用漏洞检测
- 系统在不同配置下的权限表现差异分析
测试优势:
- 无需获取每个站点管理员权限即可测试
- 可以发现系统本身的通用越权漏洞
- 同一漏洞在不同站点的表现差异可帮助定位核心问题
6. 开发注意事项
关键开发要点:
- 确保Host提取时处理了空格和特殊字符
- 保持原始请求的端口和协议不变
- 正确处理HTTPS请求的安全上下文
- 添加足够的日志输出便于调试
调试技巧:
- 使用Burp的Logger++查看实际请求
- 检查响应是否确实来自目标站点
- 验证cookie和session的传递是否正确
7. 总结
通过改造Auth Analyzer插件实现跨站点越权测试,安全测试人员可以:
- 更全面地评估同一系统在不同环境中的权限控制一致性
- 发现系统底层的通用越权漏洞
- 提高测试效率,减少重复工作
这种技术特别适合测试多租户系统、SaaS应用和广泛部署的通用系统平台,能够有效发现系统设计层面的权限控制缺陷。