Web API Pentesting

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

使用 Trickest 可以轻松构建和自动化工作流程,使用世界上最先进的社区工具。 立即获取访问权限:

API 渗透测试方法论总结

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

理解 API 类型

  • SOAP/XML Web 服务:使用 WSDL 格式的文档,通常在 ?wsdl 路径下找到。像 SOAPUIWSDLer(Burp Suite 扩展)这样的工具对解析和生成请求非常有帮助。示例文档可在 DNE Online 上访问。

  • REST API(JSON):文档通常以 WADL 文件形式提供,但像 Swagger UI 这样的工具提供了一个更用户友好的界面进行交互。Postman 是一个用于创建和管理示例请求的宝贵工具。

  • GraphQL:一种用于 API 的查询语言,提供了对 API 中数据的完整和可理解的描述。

实践实验室

  • VAmPI:一个故意设计成易受攻击的 API,用于实践,涵盖 OWASP 十大 API 漏洞。

API 渗透测试的有效技巧

  • SOAP/XML 漏洞:探索 XXE 漏洞,尽管 DTD 声明通常受限。如果 XML 保持有效,CDATA 标记可能允许插入有效载荷。

  • 权限提升:测试具有不同权限级别的端点,以识别未经授权访问的可能性。

  • CORS 配置错误:调查 CORS 设置,以便通过已认证会话的 CSRF 攻击进行潜在利用。

  • 端点发现:利用 API 模式发现隐藏的端点。工具如模糊器可以自动化此过程。

  • 参数篡改:尝试在请求中添加或替换参数,以访问未经授权的数据或功能。

  • HTTP 方法测试:变化请求方法(GET、POST、PUT、DELETE、PATCH),以发现意外行为或信息泄霏。

  • 内容类型操纵:在不同的内容类型之间切换(x-www-form-urlencoded、application/xml、application/json),以测试解析问题或漏洞。

  • 高级参数技术:在 JSON 负载中测试意外数据类型,或者尝试使用 XML 数据进行 XXE 注入。还可以尝试参数污染和通配符字符进行更广泛的测试。

  • 版本测试:旧的 API 版本可能更容易受到攻击。始终检查并针对多个 API 版本进行测试。

API 渗透测试的工具和资源

  • kiterunner:用于发现 API 端点的绝佳工具。使用它来扫描和针对目标 API 对路径和参数进行暴力破解。

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
  • 类似 automatic-api-attack-toolAstrarestler-fuzzer 这样的附加工具提供了针对 API 安全测试的定制功能,从攻击模拟到模糊测试和漏洞扫描不等。

  • Cherrybomb:这是一个 API 安全工具,根据 OAS 文件对您的 API 进行审计(该工具使用 Rust 编写)。

学习和实践资源

  • OWASP API 安全前 10 名:了解常见 API 漏洞的必读内容(OWASP Top 10)。

  • API 安全检查清单:用于保护 API 的全面检查清单(GitHub 链接)。

  • Logger++ 过滤器:对于查找 API 漏洞,Logger++ 提供了有用的过滤器(GitHub 链接)。

  • API 端点列表:用于测试目的的潜在 API 端点的策划列表(GitHub gist)。

参考资料

使用 Trickest 可以轻松构建和 自动化工作流程,使用全球 最先进 的社区工具。 立即获取访问权限:

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

最后更新于