Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
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测试
- [ ] 参数污染
业务逻辑
- [ ] 工作流验证
- [ ] 状态转换
- [ ] 并发控制
- [ ] 业务规则
错误处理
- [ ] 错误信息泄露
- [ ] 堆栈跟踪
- [ ] 敏感信息暴露
防护措施
推荐方案
- 认证
- 使用强Token
- 实现Token刷新
-
验证Token签名
-
授权
- 基于角色的访问控制
- 资源所有权验证
-
最小权限原则
-
输入验证
- 参数类型验证
- 数据长度限制
-
白名单验证
-
错误处理
- 统一错误响应
- 不泄露详细信息
-
记录错误日志
-
速率限制
- 实现API限流
- 防止暴力破解
- 监控异常请求
注意事项
- 仅在授权测试环境中进行
- 避免对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.