针对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更容易发现漏洞。


赞 (0)
本文由 Aatrox 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论