Web API Pentesting

学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

使用 Trickest 轻松构建和 自动化工作流,由世界上 最先进 的社区工具提供支持。 今天就获取访问权限:

API 渗透测试方法概述

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

理解 API 类型

  • SOAP/XML Web 服务:使用 WSDL 格式进行文档记录,通常位于 ?wsdl 路径。像 SOAPUIWSDLer(Burp Suite 扩展)这样的工具对于解析和生成请求至关重要。示例文档可在 DNE Online 获取。

  • REST APIs (JSON):文档通常以 WADL 文件形式提供,但像 Swagger UI 这样的工具提供了更友好的交互界面。Postman 是创建和管理示例请求的有价值工具。

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

实践实验室

  • VAmPI:一个故意存在漏洞的 API,供实践使用,涵盖 OWASP 前 10 大 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:这是一个基于 OAS 文件审计您的 API 的 API 安全工具(该工具用 Rust 编写)。

学习和实践资源

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

  • API 安全检查清单:一个全面的 API 安全检查清单 (GitHub link)。

  • Logger++ 过滤器:用于寻找 API 漏洞,Logger++ 提供有用的过滤器 (GitHub link)。

  • API 端点列表:一个为测试目的整理的潜在 API 端点列表 (GitHub gist)。

参考资料

使用 Trickest 轻松构建和 自动化工作流,由世界上 最先进 的社区工具提供支持。 今天就获取访问权限:

学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks

Last updated