hacktricks/network-services-pentesting/pentesting-web/web-api-pentesting.md

6.8 KiB
Raw Blame History

Web API 渗透测试

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

支持 HackTricks 的其他方式:

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

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

API 渗透测试方法论总结

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

理解 API 类型

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

  • REST APIJSON:文档通常以 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 安全测试的定制功能,从攻击模拟到模糊测试和漏洞扫描不等。

学习和实践资源

  • OWASP API 安全前 10 名:理解常见 API 漏洞的必读资料 (OWASP Top 10)。

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

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

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

参考资料

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

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

从零开始学习 AWS 黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)!

支持 HackTricks 的其他方式: