js前端解密-HMACSHA256加密算法

admin 2023年10月13日13:53:41评论14 views字数 606阅读2分1秒阅读模式

访问网址,填入验证码1234

js前端解密-HMACSHA256加密算法

查看数据包

js前端解密-HMACSHA256加密算法

直接修改验证码,发现验签了

js前端解密-HMACSHA256加密算法

js代码中分析一下签名如何生成查看jwt关键字即可发现此处js代码


js前端解密-HMACSHA256加密算法

在上面居然要一划拉就看到了加密算法

js前端解密-HMACSHA256加密算法

下断点确实走这边,后发现iss是固定的

js前端解密-HMACSHA256加密算法

所以猜测验签的值主要是r前面是固定的。

//未进行base64加密

t={"typ":"JWT","alg":"SHA256"}

e={"verifyCode":"1233","iss":"ac85123b-59e2-4673-82e0-c64663e41696","issType":"web","appType":"web"}

我们输入的1234验证码放在e变量里现在需要来研究r变量如何生成可以看出来r是使用HmacSHA256算法处理t+.+n

js前端解密-HMACSHA256加密算法

加密的key为

kIK0E3eP8GzOGoHrErZQ1BNmMCAwEAAQ==abc

js前端解密-HMACSHA256加密算法

也可以追进去看。getDkeyFromS()函数


js前端解密-HMACSHA256加密算法

点到M即可发现

M=dKey

js前端解密-HMACSHA256加密算法

这里y函数用了一个从浏览器本身取值的

js前端解密-HMACSHA256加密算法

去浏览器缓存看看,值也是一样的

js前端解密-HMACSHA256加密算法

可以是进行加密。

这里有一个小点...因为得到的r类型是object,直接用sha256+base64处理数据对不上

js前端解密-HMACSHA256加密算法

js前端解密-HMACSHA256加密算法

需要经过一轮from->hex,才可以。。并且key的格式为utf-8。这个我没找到代码出处是试出来的

js前端解密-HMACSHA256加密算法

和结果对比。获得也是正确的

js前端解密-HMACSHA256加密算法

原文始发于微信公众号(NightTalk安全团队):js前端解密-HMACSHA256加密算法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月13日13:53:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   js前端解密-HMACSHA256加密算法https://cn-sec.com/archives/2104681.html

发表评论

匿名网友 填写信息