API渗透测试的一般步骤

针对API的渗透测试一般分为7个步骤,分别是:

  1. 前期交互
  2. 信息收集
  3. 威胁建模
  4. 漏洞发现
  5. 漏洞利用
  6. 后渗透或横向移动
  7. 报告撰写

这里主要介绍信息收集和漏洞发现。

API渗透的信息收集

信息收集是API渗透的入口,非常的重要。

1.自动化的收集

使用自动化工具收集相关对象的信息。 包括域名,子域名,IP,端口,DNS,路径,参数等等

2.手工收集

手工整理业务流程,组织架构和人员职能等

3.情报收集

通过其他渠道获取关键信息。

注意的事项:

API是否存在接口定义的规范描述文件?

  • 如果存在,遵循的规范是什么?
  • API 依赖什么语言实现?
  • API 运行所依赖的组件是什么版本?是否存在已知的漏洞
  • 互联网上是否存在其泄露的API key 或者证书
  • API 是否存在多个版本?多个接入端?

API 渗透的漏洞发现

1.自动化检测

和对象进行交互,根据应答的响应情况来判断是否存在漏洞。

特点: 耗时短,速度快,但是存在误报

2.手工挖掘

人工方式验证,使用辅助的工具

特点: 耗时长,速度慢,但准确性高

实际工作,往往两种方式混用。 先使用自动化监测工具全量扫一遍,再根据高风险业务场景进行人工测试或者复核。

注意的事项:

API渗透测试多为手工挖掘

  • 认证和授权。 对于API的认证鉴权机制,设计人员和研发往往认识不足,甚至缺少认证和授权机制。 比如 令牌,HTTP方法在进入服务器之前是否都经过了严重,OAuth协议使用的正确性,无认证和授权的API 是否可以任意调用。
  • 输入验证。 研发人员通常对输入缺少有效的验证,比如XML实体注入的类型攻击,不同的响应类型application/josn和application/xml
  • 数据编码。 包含JSON格式的数据,容易导致反序列化漏洞或者远程代码执行
  • API版本和影子API。 同一个API的不同版本活未在API规范文件描述的API更容易发现漏洞。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s