Web API Pentesting

Reading time: 6 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

API Pentesting Methodology Summary

Pentesting APIs 涉及一种结构化的方法来发现漏洞。本指南概括了一种全面的方法论,强调实用的技术和工具。

Understanding API Types

  • SOAP/XML Web Services: 使用 WSDL 格式进行文档编制,通常在 ?wsdl 路径中找到。工具如 SOAPUIWSDLer (Burp Suite Extension) 对于解析和生成请求非常重要。示例文档可在 DNE Online 获取。
  • REST APIs (JSON): 文档通常以 WADL 文件形式提供,但像 Swagger UI 这样的工具提供了更用户友好的交互界面。Postman 是一个创建和管理示例请求的有价值工具。
  • GraphQL: 一种用于 API 的查询语言,提供对 API 中数据的完整和可理解的描述。

Practice Labs

  • VAmPI: 一个故意存在漏洞的 API,供实践使用,涵盖 OWASP 前 10 大 API 漏洞。

Effective Tricks for API Pentesting

  • SOAP/XML Vulnerabilities: 探索 XXE 漏洞,尽管 DTD 声明通常受到限制。如果 XML 保持有效,CDATA 标签可能允许有效负载插入。
  • Privilege Escalation: 测试具有不同权限级别的端点,以识别未授权访问的可能性。
  • CORS Misconfigurations: 检查 CORS 设置,以寻找通过已认证会话的 CSRF 攻击的潜在利用可能性。
  • Endpoint Discovery: 利用 API 模式发现隐藏的端点。像模糊测试工具这样的工具可以自动化此过程。
  • Parameter Tampering: 尝试在请求中添加或替换参数,以访问未授权的数据或功能。
  • HTTP Method Testing: 变更请求方法(GET, POST, PUT, DELETE, PATCH)以发现意外行为或信息泄露。
  • Content-Type Manipulation: 在不同的内容类型(x-www-form-urlencoded, application/xml, application/json)之间切换,以测试解析问题或漏洞。
  • Advanced Parameter Techniques: 在 JSON 有效负载中测试意外数据类型,或玩弄 XML 数据以进行 XXE 注入。同时,尝试参数污染和通配符字符以进行更广泛的测试。
  • Version Testing: 较旧的 API 版本可能更容易受到攻击。始终检查并测试多个 API 版本。

Tools and Resources for API Pentesting

  • kiterunner: 非常适合发现 API 端点。使用它扫描和暴力破解目标 API 的路径和参数。
bash
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
  • https://github.com/BishopFox/sj: sj 是一个命令行工具,旨在通过检查相关的 API 端点的弱身份验证来协助审计 暴露的 Swagger/OpenAPI 定义文件。它还提供手动漏洞测试的命令模板。
  • 其他工具如 automatic-api-attack-toolAstrarestler-fuzzer 提供针对 API 安全测试的定制功能,从攻击模拟到模糊测试和漏洞扫描。
  • Cherrybomb: 这是一个基于 OAS 文件审计您的 API 的 API 安全工具(该工具用 Rust 编写)。

学习和实践资源

  • OWASP API Security Top 10: 理解常见 API 漏洞的必读材料 (OWASP Top 10)。
  • API 安全检查清单: 一个全面的 API 安全检查清单 (GitHub link)。
  • Logger++ 过滤器: 用于寻找 API 漏洞,Logger++ 提供有用的过滤器 (GitHub link)。
  • API 端点列表: 一个经过策划的潜在 API 端点列表,用于测试目的 (GitHub gist)。

参考

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks