服务器端漏洞篇 | API测试专题
字数 965 2025-08-20 18:18:10

API测试专题教学文档

1. API测试概述

1.1 API基本概念

  • 定义:API(Application Programming Interfaces)是应用程序编程接口,使软件系统和应用程序能够通信和共享数据
  • 重要性:API中的漏洞可能破坏网站的机密性、完整性和可用性
  • 范围:所有动态网站都由API组成,因此传统Web漏洞(如SQL注入)也可归类为API测试

1.2 API测试重点

  • RESTful API
  • JSON API

2. API信息收集

2.1 确定API端点

  • 示例:GET /api/books HTTP/1.1
  • 可能存在的其他端点:/api/books/mystery

2.2 交互方式分析

  1. 输入数据

    • 必选参数
    • 可选参数
  2. 请求类型

    • 支持的HTTP方法(GET, POST, PUT, DELETE等)
    • 接受的媒体格式(JSON, XML等)
  3. 安全机制

    • 速率限制
    • 身份验证机制

3. API文档利用

3.1 API文档类型

  • 人类可读文档

    • 详细解释
    • 使用示例
    • 应用场景
  • 机器可读文档

    • JSON或XML格式
    • 用于自动化集成和验证

3.2 发现API文档的常见路径

  • /api
  • /swagger/index.html
  • /openapi.json
  • /api/swagger/v1
  • /api/swagger

4. 实战案例解析

4.1 靶场示例:利用API端点删除用户

目标:找到删除用户的API端点并删除carlos

步骤

  1. 登录测试用户wiener
  2. 修改邮箱触发API请求:
    PATCH /api/user/wiener
    {"email":"wienerr@normal-user.net"}
    
  3. 分析API端点规则
  4. 尝试删除wiener用户(会报错)
  5. 继续测试API端点结构
  6. 最终发现三个API端点信息
  7. 构造删除请求:
    DELETE /api/user/carlos
    

5. 最佳实践建议

  1. 全面测试:对所有发现的API端点进行测试
  2. 方法覆盖:尝试所有HTTP方法,即使文档中未提及
  3. 参数测试:测试所有参数,包括可选参数
  4. 错误处理:通过错误信息获取更多API信息
  5. 文档利用:充分利用可获得的API文档

6. 常见API漏洞类型

  1. 认证和授权缺陷
  2. 注入漏洞(SQL, NoSQL, 命令注入等)
  3. 敏感数据暴露
  4. 速率限制缺失
  5. 错误配置
  6. 业务逻辑缺陷

7. 测试工具推荐

  1. Burp Suite
  2. Postman
  3. OWASP ZAP
  4. SoapUI
  5. cURL
API测试专题教学文档 1. API测试概述 1.1 API基本概念 定义 :API(Application Programming Interfaces)是应用程序编程接口,使软件系统和应用程序能够通信和共享数据 重要性 :API中的漏洞可能破坏网站的机密性、完整性和可用性 范围 :所有动态网站都由API组成,因此传统Web漏洞(如SQL注入)也可归类为API测试 1.2 API测试重点 RESTful API JSON API 2. API信息收集 2.1 确定API端点 示例: GET /api/books HTTP/1.1 可能存在的其他端点: /api/books/mystery 等 2.2 交互方式分析 输入数据 : 必选参数 可选参数 请求类型 : 支持的HTTP方法(GET, POST, PUT, DELETE等) 接受的媒体格式(JSON, XML等) 安全机制 : 速率限制 身份验证机制 3. API文档利用 3.1 API文档类型 人类可读文档 : 详细解释 使用示例 应用场景 机器可读文档 : JSON或XML格式 用于自动化集成和验证 3.2 发现API文档的常见路径 /api /swagger/index.html /openapi.json /api/swagger/v1 /api/swagger 4. 实战案例解析 4.1 靶场示例:利用API端点删除用户 目标 :找到删除用户的API端点并删除carlos 步骤 : 登录测试用户wiener 修改邮箱触发API请求: 分析API端点规则 尝试删除wiener用户(会报错) 继续测试API端点结构 最终发现三个API端点信息 构造删除请求: 5. 最佳实践建议 全面测试 :对所有发现的API端点进行测试 方法覆盖 :尝试所有HTTP方法,即使文档中未提及 参数测试 :测试所有参数,包括可选参数 错误处理 :通过错误信息获取更多API信息 文档利用 :充分利用可获得的API文档 6. 常见API漏洞类型 认证和授权缺陷 注入漏洞(SQL, NoSQL, 命令注入等) 敏感数据暴露 速率限制缺失 错误配置 业务逻辑缺陷 7. 测试工具推荐 Burp Suite Postman OWASP ZAP SoapUI cURL