我如何在一个公开的 Bug 奖励计划中发现关键 XSS
字数 1636 2025-09-01 11:25:54

在公开Bug奖励计划中发现关键XSS漏洞的详细教学文档

1. 侦察阶段

1.1 初始侦察方法

  • 使用Google Dork语法:site:*.REDACTED.com -www
  • 通过此方法获取大量子域名
  • 重点关注特殊格式子域名:10-10-10-16.mobile.REDACTED.com(IP地址格式但用短横线替代点号)

1.2 目标识别

  • 目标为路由器登录门户(疑似公司内部使用)
  • 尝试默认凭证登录失败

2. 深入侦察

2.1 客户端源码分析

  • 使用Javascript Bookmarklet获取客户端代码中的所有端点
  • 端点扫描结果:
    • 多数返回401 Forbidden
    • 关键发现:/guest/preview.cgi返回200 OK

2.2 功能分析

  • /guest/preview.cgi暴露管理员功能:
    • 可修改任何页面内容(条款与条件页、登录页等)
    • 包含"Edit mode"切换按钮
    • 可编辑页面元素(文本、按钮、图片等)

3. 漏洞发现

3.1 未授权修改验证

  • 测试修改"同意"按钮文本为"This was modified by 1-day"
  • 确认修改可永久保存(无需认证)

3.2 存储型XSS发现

  • 修改请求分析:

    • POST请求发送至/guest/portal_admin_upload.cgi
    • 请求体类型:multipart/form-data
    • 关键字段:edit_page(JSON格式)
  • XSS Payload构造:

    {
      "agree_button": "<script>alert(1)</script>"
    }
    
  • 确认XSS执行成功

4. 漏洞利用升级

4.1 初始利用尝试(计划A)

  • 尝试获取Cookie:
    • 失败原因:Cookie设置严格(HttpOnly标志,Path限制)

4.2 高级利用链构建(计划B)

4.2.1 页面克隆

  • 使用HTTrack克隆整个路由器登录页面:
    httrack https://10-10-10-16.mobile.REDACTED.com/
    
  • 保持原始目录结构(包括JS、HTML、CSS、CGI文件)

4.2.2 恶意页面修改

  • 修改cgi-bin/index.html
    • 添加凭证窃取功能
    • 设置3秒后重定向到正常页面(preview.cgi?portal_id=2

4.2.3 服务器设置

  • 使用Flask创建接收服务器:
    from flask import Flask, request
    
    app = Flask(__name__)
    
    @app.route('/capture', methods=['POST'])
    def capture():
        username = request.form.get('username')
        password = request.form.get('password')
        print(f"Captured credentials - Username: {username}, Password: {password}")
        return "Login successful", 200
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=80)
    

4.2.4 完整攻击流程

  1. 受害者访问被XSS感染的preview.cgi
  2. 静默重定向至攻击者克隆的登录页面
  3. 受害者输入凭证
  4. 凭证发送至攻击者服务器
  5. 3秒后重定向至正常页面(preview.cgi?portal_id=2

5. 漏洞影响分析

5.1 潜在风险

  • 管理员账户接管
  • 内部路由器控制权获取
  • 可能的后续攻击:
    • DNS/Proxy修改
    • 网络内所有设备信息窃取
    • 更严重的网络级攻击

5.2 漏洞价值

  • 超越普通XSS的证明(从弹窗到实际危害)
  • 展示了完整的攻击链构建过程

6. 关键学习点

  1. 侦察技巧

    • Google Dork的高效使用
    • 特殊格式子域名的识别
  2. 漏洞发现方法

    • 客户端源码分析的重要性
    • 端点枚举技术
  3. 漏洞验证

    • 最小化修改测试
    • 请求分析(Burpsuite使用)
  4. 漏洞利用升级

    • 从简单XSS到账户接管的思路
    • 完整攻击链构建
    • 隐蔽性设计(延迟重定向)
  5. 报告技巧

    • 展示实际危害而非理论风险
    • 完整的攻击场景描述

7. 防御建议

  1. 输入验证

    • 对所有用户输入进行严格过滤
    • 实施内容安全策略(CSP)
  2. 访问控制

    • 关键功能必须要求认证
    • 实施最小权限原则
  3. Cookie安全

    • 保持HttpOnly和Secure标志
    • 合理设置Path和SameSite属性
  4. 监控与日志

    • 记录所有管理操作
    • 设置异常修改警报
  5. 安全意识

    • 定期安全培训
    • 实施安全开发生命周期(SDLC)

8. 总结

本案例展示了从简单侦察到发现高危漏洞,再到构建完整攻击链的全过程。关键在于:

  • 不满足于表面发现
  • 深入分析每个功能的潜在风险
  • 创造性思维构建利用场景
  • 注重实际危害而不仅是理论漏洞

这种深度研究方法在Bug奖励计划中往往能发现更高价值的漏洞并获得更高奖励。

在公开Bug奖励计划中发现关键XSS漏洞的详细教学文档 1. 侦察阶段 1.1 初始侦察方法 使用Google Dork语法: site:*.REDACTED.com -www 通过此方法获取大量子域名 重点关注特殊格式子域名: 10-10-10-16.mobile.REDACTED.com (IP地址格式但用短横线替代点号) 1.2 目标识别 目标为路由器登录门户(疑似公司内部使用) 尝试默认凭证登录失败 2. 深入侦察 2.1 客户端源码分析 使用Javascript Bookmarklet获取客户端代码中的所有端点 端点扫描结果: 多数返回401 Forbidden 关键发现: /guest/preview.cgi 返回200 OK 2.2 功能分析 /guest/preview.cgi 暴露管理员功能: 可修改任何页面内容(条款与条件页、登录页等) 包含"Edit mode"切换按钮 可编辑页面元素(文本、按钮、图片等) 3. 漏洞发现 3.1 未授权修改验证 测试修改"同意"按钮文本为"This was modified by 1-day" 确认修改可永久保存(无需认证) 3.2 存储型XSS发现 修改请求分析: POST请求发送至 /guest/portal_admin_upload.cgi 请求体类型: multipart/form-data 关键字段: edit_page (JSON格式) XSS Payload构造: 确认XSS执行成功 4. 漏洞利用升级 4.1 初始利用尝试(计划A) 尝试获取Cookie: 失败原因:Cookie设置严格(HttpOnly标志,Path限制) 4.2 高级利用链构建(计划B) 4.2.1 页面克隆 使用HTTrack克隆整个路由器登录页面: 保持原始目录结构(包括JS、HTML、CSS、CGI文件) 4.2.2 恶意页面修改 修改 cgi-bin/index.html : 添加凭证窃取功能 设置3秒后重定向到正常页面( preview.cgi?portal_id=2 ) 4.2.3 服务器设置 使用Flask创建接收服务器: 4.2.4 完整攻击流程 受害者访问被XSS感染的 preview.cgi 静默重定向至攻击者克隆的登录页面 受害者输入凭证 凭证发送至攻击者服务器 3秒后重定向至正常页面( preview.cgi?portal_id=2 ) 5. 漏洞影响分析 5.1 潜在风险 管理员账户接管 内部路由器控制权获取 可能的后续攻击: DNS/Proxy修改 网络内所有设备信息窃取 更严重的网络级攻击 5.2 漏洞价值 超越普通XSS的证明(从弹窗到实际危害) 展示了完整的攻击链构建过程 6. 关键学习点 侦察技巧 : Google Dork的高效使用 特殊格式子域名的识别 漏洞发现方法 : 客户端源码分析的重要性 端点枚举技术 漏洞验证 : 最小化修改测试 请求分析(Burpsuite使用) 漏洞利用升级 : 从简单XSS到账户接管的思路 完整攻击链构建 隐蔽性设计(延迟重定向) 报告技巧 : 展示实际危害而非理论风险 完整的攻击场景描述 7. 防御建议 输入验证 : 对所有用户输入进行严格过滤 实施内容安全策略(CSP) 访问控制 : 关键功能必须要求认证 实施最小权限原则 Cookie安全 : 保持HttpOnly和Secure标志 合理设置Path和SameSite属性 监控与日志 : 记录所有管理操作 设置异常修改警报 安全意识 : 定期安全培训 实施安全开发生命周期(SDLC) 8. 总结 本案例展示了从简单侦察到发现高危漏洞,再到构建完整攻击链的全过程。关键在于: 不满足于表面发现 深入分析每个功能的潜在风险 创造性思维构建利用场景 注重实际危害而不仅是理论漏洞 这种深度研究方法在Bug奖励计划中往往能发现更高价值的漏洞并获得更高奖励。