Ed1s0nZ

api-security-testing

608
94
# Install this skill:
npx skills add Ed1s0nZ/CyberStrikeAI --skill "api-security-testing"

Install specific skill from multi-skill repository

# Description

API安全测试的专业技能和方法论

# SKILL.md


name: api-security-testing
description: API安全测试的专业技能和方法论
version: 1.0.0


API安全测试

概述

API安全测试是确保API接口安全性的重要环节。本技能提供API安全测试的方法、工具和最佳实践。

测试范围

1. 认证和授权

测试项目:
- Token有效性验证
- Token过期处理
- 权限控制
- 角色权限验证

2. 输入验证

测试项目:
- 参数类型验证
- 数据长度限制
- 特殊字符处理
- SQL注入防护
- XSS防护

3. 业务逻辑

测试项目:
- 工作流验证
- 状态转换
- 并发控制
- 业务规则

4. 错误处理

测试项目:
- 错误信息泄露
- 堆栈跟踪
- 敏感信息暴露

测试方法

1. API发现

识别API端点:

# 使用目录扫描
gobuster dir -u https://target.com -w api-wordlist.txt

# 使用Burp Suite被动扫描
# 浏览应用,观察API调用

# 分析JavaScript文件
# 查找API端点定义

2. 认证测试

Token测试:

# 测试无效Token
GET /api/user
Authorization: Bearer invalid_token

# 测试过期Token
GET /api/user
Authorization: Bearer expired_token

# 测试无Token
GET /api/user

JWT测试:

# 使用jwt_tool
python jwt_tool.py <JWT_TOKEN>

# 测试算法混淆
python jwt_tool.py <JWT_TOKEN> -X a

# 测试密钥暴力破解
python jwt_tool.py <JWT_TOKEN> -C -d wordlist.txt

3. 授权测试

水平权限:

# 用户A访问用户B的资源
GET /api/user/123
Authorization: Bearer user_a_token

# 应该返回403

垂直权限:

# 普通用户访问管理员接口
GET /api/admin/users
Authorization: Bearer user_token

# 应该返回403

4. 输入验证测试

SQL注入:

POST /api/search
{
  "query": "test' OR '1'='1"
}

命令注入:

POST /api/execute
{
  "command": "ping; id"
}

XXE:

POST /api/parse
Content-Type: application/xml

<?xml version="1.0"?>
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<foo>&xxe;</foo>

5. 速率限制测试

测试速率限制:

import requests

for i in range(1000):
    response = requests.get('https://target.com/api/endpoint')
    print(f"Request {i}: {response.status_code}")

工具使用

Postman

创建测试集合:
1. 导入API文档
2. 设置认证
3. 创建测试用例
4. 运行自动化测试

Burp Suite

API扫描:
1. 配置API端点
2. 设置认证
3. 运行主动扫描
4. 分析结果

OWASP ZAP

# API扫描
zap-cli quick-scan --self-contained \
  --start-options '-config api.disablekey=true' \
  http://target.com/api

REST-Attacker

# 扫描OpenAPI规范
rest-attacker scan openapi.yaml

常见漏洞

1. 认证绕过

Token验证缺陷:
- 弱Token生成
- Token可预测
- Token不验证签名

2. 权限提升

IDOR:
- 直接对象引用
- 未验证资源所有权

3. 信息泄露

错误信息:
- 详细错误信息
- 堆栈跟踪
- 敏感数据

4. 注入漏洞

常见注入:
- SQL注入
- NoSQL注入
- 命令注入
- XXE

5. 业务逻辑

逻辑缺陷:
- 价格操作
- 数量限制绕过
- 状态修改

测试清单

认证测试

  • [ ] Token有效性验证
  • [ ] Token过期处理
  • [ ] 弱Token检测
  • [ ] Token重放攻击

授权测试

  • [ ] 水平权限测试
  • [ ] 垂直权限测试
  • [ ] 角色权限验证
  • [ ] 资源访问控制

输入验证

  • [ ] SQL注入测试
  • [ ] XSS测试
  • [ ] 命令注入测试
  • [ ] XXE测试
  • [ ] 参数污染

业务逻辑

  • [ ] 工作流验证
  • [ ] 状态转换
  • [ ] 并发控制
  • [ ] 业务规则

错误处理

  • [ ] 错误信息泄露
  • [ ] 堆栈跟踪
  • [ ] 敏感信息暴露

防护措施

推荐方案

  1. 认证
  2. 使用强Token
  3. 实现Token刷新
  4. 验证Token签名

  5. 授权

  6. 基于角色的访问控制
  7. 资源所有权验证
  8. 最小权限原则

  9. 输入验证

  10. 参数类型验证
  11. 数据长度限制
  12. 白名单验证

  13. 错误处理

  14. 统一错误响应
  15. 不泄露详细信息
  16. 记录错误日志

  17. 速率限制

  18. 实现API限流
  19. 防止暴力破解
  20. 监控异常请求

注意事项

  • 仅在授权测试环境中进行
  • 避免对API造成影响
  • 注意不同API版本的差异
  • 测试时注意请求频率

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.