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替换测试

局限性问题

  1. 无法直接测试跨站点的越权(A站管理员 vs B站普通用户)
  2. 插件仅替换请求头中的Host值,实际访问的仍是原网站
  3. 同一系统在不同站点的配置可能导致越权漏洞表现不一致

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替换技术

关键实现步骤

  1. 从修改后的headers中提取新的Host值
  2. 使用提取的Host构建新的HTTP服务
  3. 向新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找到请求发送的核心逻辑

修改逻辑

  1. 检查用户是否指定了新的Host
  2. 如果指定了Host,则构建新的HTTP服务
  3. 使用新Host而非原始Host发起请求

4.2 插件使用流程

跨站点越权测试步骤

  1. 配置插件:设置A网站管理员cookie和B网站普通用户cookie
  2. 指定目标Host为B网站的域名
  3. 使用A网站管理员账号访问各项功能
  4. 插件会自动将请求发送到B网站并携带B网站普通用户的cookie

配置示例

源请求:A网站管理员cookie
目标Host:www.B-site.com
目标Cookie:B网站普通用户cookie

5. 实际应用场景分析

适用场景

  1. 多租户SaaS系统的权限测试
  2. 同一系统部署在不同客户环境时的通用漏洞检测
  3. 系统在不同配置下的权限表现差异分析

测试优势

  1. 无需获取每个站点管理员权限即可测试
  2. 可以发现系统本身的通用越权漏洞
  3. 同一漏洞在不同站点的表现差异可帮助定位核心问题

6. 开发注意事项

关键开发要点

  1. 确保Host提取时处理了空格和特殊字符
  2. 保持原始请求的端口和协议不变
  3. 正确处理HTTPS请求的安全上下文
  4. 添加足够的日志输出便于调试

调试技巧

  1. 使用Burp的Logger++查看实际请求
  2. 检查响应是否确实来自目标站点
  3. 验证cookie和session的传递是否正确

7. 总结

通过改造Auth Analyzer插件实现跨站点越权测试,安全测试人员可以:

  1. 更全面地评估同一系统在不同环境中的权限控制一致性
  2. 发现系统底层的通用越权漏洞
  3. 提高测试效率,减少重复工作

这种技术特别适合测试多租户系统、SaaS应用和广泛部署的通用系统平台,能够有效发现系统设计层面的权限控制缺陷。

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的核心代码 : 3.2 跨站点Host替换技术 关键实现步骤 : 从修改后的headers中提取新的Host值 使用提取的Host构建新的HTTP服务 向新Host发起实际请求 核心代码实现 : 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 配置示例 : 5. 实际应用场景分析 适用场景 : 多租户SaaS系统的权限测试 同一系统部署在不同客户环境时的通用漏洞检测 系统在不同配置下的权限表现差异分析 测试优势 : 无需获取每个站点管理员权限即可测试 可以发现系统本身的通用越权漏洞 同一漏洞在不同站点的表现差异可帮助定位核心问题 6. 开发注意事项 关键开发要点 : 确保Host提取时处理了空格和特殊字符 保持原始请求的端口和协议不变 正确处理HTTPS请求的安全上下文 添加足够的日志输出便于调试 调试技巧 : 使用Burp的Logger++查看实际请求 检查响应是否确实来自目标站点 验证cookie和session的传递是否正确 7. 总结 通过改造Auth Analyzer插件实现跨站点越权测试,安全测试人员可以: 更全面地评估同一系统在不同环境中的权限控制一致性 发现系统底层的通用越权漏洞 提高测试效率,减少重复工作 这种技术特别适合测试多租户系统、SaaS应用和广泛部署的通用系统平台,能够有效发现系统设计层面的权限控制缺陷。