<< All versions
Skill v1.0.0
currentLLM-judged scan90/100kolorbee/lnu-secllm/api-security-testing
──Details
PublishedOctober 24, 2026 at 10:14 AM
Content Hashsha256:9cdd1db1da394675...
Git SHA12878d96a542
──Files
Files (1 file, 4.4 KB)
SKILL.md4.4 KBactive
SKILL.md · 287 lines · 4.4 KB
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端点:
bash
# 使用目录扫描gobuster dir -u https://target.com -w api-wordlist.txt# 使用Burp Suite被动扫描# 浏览应用,观察API调用# 分析JavaScript文件# 查找API端点定义
2. 认证测试
Token测试:
http
# 测试无效TokenGET /api/userAuthorization: Bearer invalid_token# 测试过期TokenGET /api/userAuthorization: Bearer expired_token# 测试无TokenGET /api/user
JWT测试:
bash
# 使用jwt_toolpython jwt_tool.py <JWT_TOKEN># 测试算法混淆python jwt_tool.py <JWT_TOKEN> -X a# 测试密钥暴力破解python jwt_tool.py <JWT_TOKEN> -C -d wordlist.txt
3. 授权测试
水平权限:
http
# 用户A访问用户B的资源GET /api/user/123Authorization: Bearer user_a_token# 应该返回403
垂直权限:
http
# 普通用户访问管理员接口GET /api/admin/usersAuthorization: Bearer user_token# 应该返回403
4. 输入验证测试
SQL注入:
http
POST /api/search{"query": "test' OR '1'='1"}
命令注入:
http
POST /api/execute{"command": "ping; id"}
XXE:
http
POST /api/parseContent-Type: application/xml<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><foo>&xxe;</foo>
5. 速率限制测试
测试速率限制:
python
import requestsfor i in range(1000):response = requests.get('https://target.com/api/endpoint')print(f"Request {i}: {response.status_code}")
工具使用
Postman
创建测试集合:
- 导入API文档
- 设置认证
- 创建测试用例
- 运行自动化测试
Burp Suite
API扫描:
- 配置API端点
- 设置认证
- 运行主动扫描
- 分析结果
OWASP ZAP
bash
# API扫描zap-cli quick-scan --self-contained \--start-options '-config api.disablekey=true' \http://target.com/api
REST-Attacker
bash
# 扫描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版本的差异
- 测试时注意请求频率