testing-mobile-api-authentication
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。
Best use case
testing-mobile-api-authentication is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。
Teams using testing-mobile-api-authentication should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/testing-mobile-api-authentication/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How testing-mobile-api-authentication Compares
| Feature / Agent | testing-mobile-api-authentication | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 测试移动应用 API 认证
## 适用场景
适用于以下情况:
- 在渗透测试中评估移动应用后端 API 认证机制
- 测试 JWT 实现中的常见漏洞(none 算法、弱签名密钥)
- 评估移动应用中 OAuth 2.0 / OIDC 流程的重定向、PKCE 和权限范围问题
- 测试 API 端点中的 BOLA/IDOR(对象级授权失效)漏洞
**不适用场景**:未经明确授权且无速率限制意识,不得对生产 API 使用此技能。
## 前置条件
- Burp Suite 或 mitmproxy 已配置为移动设备代理
- 目标应用已绕过 SSL 固定(如已实现)
- 目标应用的有效测试账户凭据
- Postman 或 curl 用于构造 API 请求
- jwt.io 或 PyJWT 用于 JWT 分析与篡改
## 工作流程
### 步骤 1:映射认证端点
拦截移动应用流量,识别认证相关端点:
```
POST /api/v1/auth/login - 初始认证
POST /api/v1/auth/register - 账户注册
POST /api/v1/auth/refresh - Token 刷新
POST /api/v1/auth/logout - 会话终止
POST /api/v1/auth/forgot-password - 密码重置
POST /api/v1/auth/verify-otp - OTP 验证
GET /api/v1/auth/me - 已认证用户信息
```
### 步骤 2:分析 Token 格式与安全性
**JWT 分析:**
```bash
# 不验证签名直接解码 JWT
echo "eyJhbGciOiJIUzI1NiIs..." | cut -d. -f2 | base64 -d 2>/dev/null
# 检查常见 JWT 漏洞:
# 1. None 算法攻击
# 修改 Header 为:{"alg":"none","typ":"JWT"}
# 去掉签名:header.payload.
# 2. 算法混淆(RS256 改为 HS256)
# 若服务器使用 RS256,尝试以公钥作为 secret 使用 HS256
# 3. 弱签名密钥
# 使用 hashcat 或 jwt-cracker 爆破 HMAC secret
hashcat -m 16500 jwt.txt wordlist.txt
# 4. 过期时间绕过
# 修改 "exp" 声明为未来时间戳
```
**不透明 Token 分析:**
```
- 测试 Token 长度和熵值
- 检查 Token 是否具有顺序性或可预测性
- 测试登出后 Token 是否可复用
- 验证密码修改后 Token 是否失效
```
### 步骤 3:测试认证绕过
```bash
# 测试无认证访问
curl -X GET https://api.target.com/api/v1/users/profile
# 使用空/null Token 测试
curl -X GET https://api.target.com/api/v1/users/profile \
-H "Authorization: Bearer "
curl -X GET https://api.target.com/api/v1/users/profile \
-H "Authorization: Bearer null"
# 使用过期 Token 测试(应返回失败)
curl -X GET https://api.target.com/api/v1/users/profile \
-H "Authorization: Bearer <过期_token>"
# 使用其他用户 Token 测试
curl -X GET https://api.target.com/api/v1/users/123/profile \
-H "Authorization: Bearer <用户456的_token>"
```
### 步骤 4:测试 IDOR(对象级授权失效)
```bash
# 修改请求路径中的用户 ID
curl -X GET https://api.target.com/api/v1/users/123/orders \
-H "Authorization: Bearer <用户456的_token>"
# 修改请求体中的对象 ID
curl -X PUT https://api.target.com/api/v1/orders/789 \
-H "Authorization: Bearer <用户456的_token>" \
-d '{"status": "cancelled"}'
# 测试横向权限提升
# 使用普通用户 Token 访问管理员端点
curl -X GET https://api.target.com/api/v1/admin/users \
-H "Authorization: Bearer <普通用户_token>"
```
### 步骤 5:测试会话管理
```bash
# 测试并发会话
# 从多台设备同时登录——两个会话是否均保持有效?
# 测试登出后 Token 失效
TOKEN=$(curl -s -X POST https://api.target.com/api/v1/auth/login \
-d '{"email":"test@test.com","password":"pass"}' | jq -r '.token')
# 执行登出
curl -X POST https://api.target.com/api/v1/auth/logout \
-H "Authorization: Bearer $TOKEN"
# 尝试使用相同 Token(应返回失败)
curl -X GET https://api.target.com/api/v1/users/me \
-H "Authorization: Bearer $TOKEN"
# 测试密码修改后 Token 失效
# 密码修改前获取的 Token 应在修改后失效
```
### 步骤 6:测试 OAuth 2.0 / OIDC 移动端流程
```bash
# 测试授权码拦截
# 检查是否强制使用 PKCE(Proof Key for Code Exchange)
# 测试缺少 code_verifier 参数的情况
# 测试重定向 URI 操纵
# 尝试自定义 Scheme 劫持:myapp://callback
# 测试修改 redirect_uri 参数
# 测试权限范围提升
# 请求超出已授权的权限范围
```
## 核心概念
| 术语 | 定义 |
|------|------|
| **BOLA/IDOR** | 对象级授权失效——通过修改标识符访问资源,而服务端未进行授权检查 |
| **JWT** | JSON Web Token——包含 Header、Payload 和 Signature 的自包含认证令牌 |
| **PKCE** | Proof Key for Code Exchange——防止移动应用授权码被拦截的 OAuth 2.0 扩展 |
| **Token 刷新** | 使用长期有效的刷新令牌获取新访问令牌的机制,无需重新认证 |
| **会话固定(Session Fixation)** | 攻击者在受害者认证前预设已知会话 ID,随后劫持该会话的攻击方式 |
## 工具与系统
- **Burp Suite**:HTTP 代理,用于拦截和修改认证请求
- **jwt_tool**:Python 工具,用于测试 JWT 漏洞(none 算法、密钥混淆、声明篡改)
- **Postman**:API 测试客户端,用于构造认证请求
- **hashcat**:密码/JWT secret 爆破工具,用于测试 HMAC 签名密钥强度
- **Autorize**:Burp Suite 插件,用于自动化授权测试
## 常见问题
- **速率限制掩盖问题**:API 可能对测试请求进行速率限制。需在请求间添加延迟,并先从测试者已授权的视角进行测试。
- **URL 中的 Token**:部分移动 API 将 Token 作为 URL 查询参数传递,使其暴露在服务器日志和浏览器历史中。即使授权功能正常,也应标记为发现项。
- **刷新令牌轮换**:部分 API 在每次使用刷新令牌后进行轮换。若测试使刷新令牌失效,可能导致测试账户被锁定。
- **移动端特定 OAuth**:移动应用使用自定义 URI Scheme 进行 OAuth 重定向,可能被注册了相同 Scheme 的恶意应用拦截。Related Skills
testing-websocket-api-security
测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。
testing-oauth2-implementation-flaws
测试 OAuth 2.0 和 OpenID Connect 实现中的安全缺陷,包括授权码拦截、重定向 URI 操控、OAuth 流程中的 CSRF、令牌泄露、权限范围(scope)提升以及 PKCE 绕过。测试人员对授权服务器、客户端应用及令牌处理进行评估,发现可导致账户接管或未授权访问的常见错误配置。适用于 OAuth 安全测试、OIDC 漏洞评估、OAuth2 重定向绕过或授权码流程测试相关请求。
testing-jwt-token-security
在安全测试活动中,评估 JSON Web Token(JWT)实现中的密码学弱点、算法混淆攻击和授权绕过漏洞。
testing-for-xxe-injection-vulnerabilities
在授权的渗透测试中发现和利用 XML 外部实体(XXE)注入漏洞,以读取服务器文件、执行 SSRF 并外泄数据。
testing-for-xss-vulnerabilities
通过向反射型、存储型和 DOM 型上下文注入 JavaScript 载荷,测试 Web 应用程序的跨站脚本(XSS)漏洞, 演示客户端代码执行、会话劫持和用户冒充。测试人员识别所有注入点和输出上下文,构造适合上下文的载荷, 并绕过净化和 CSP 保护。适用于 XSS 测试、跨站脚本评估、客户端注入测试或 JavaScript 注入漏洞测试等请求场景。
testing-for-xss-vulnerabilities-with-burpsuite
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
testing-for-xml-injection-vulnerabilities
测试 Web 应用程序中的 XML 注入漏洞,包括 XXE(XML 外部实体注入)、XPath 注入和 XML 实体攻击,以识别数据泄露和服务器端请求伪造(SSRF)风险。
testing-for-sensitive-data-exposure
在安全评估中识别敏感数据暴露漏洞,包括 API 密钥泄露、响应中的 PII、不安全存储以及未受保护的数据传输。
testing-for-open-redirect-vulnerabilities
通过分析 URL 重定向参数、绕过技术和利用链,识别并测试 Web 应用程序中的开放重定向漏洞,用于网络钓鱼和 Token 窃取。
testing-for-json-web-token-vulnerabilities
测试 JWT 实现中的关键漏洞,包括算法混淆、none 算法绕过、kid 参数注入和弱密钥利用,以实现认证绕过和权限提升。
testing-for-host-header-injection
测试 Web 应用程序的 HTTP Host 头部注入漏洞,以识别密码重置中毒、Web 缓存投毒、SSRF 以及虚拟主机路由操控风险。
testing-for-email-header-injection
测试 Web 应用程序邮件功能中的 SMTP 头部注入漏洞,这些漏洞允许攻击者注入额外的邮件头部、修改收件人,并通过联系表单实施垃圾邮件中继。