本帖最后由 伤心猪大肠 于 2022-6-8 20:22 编辑
禁止用于违法行为,仅供学习参考,如有侵权请私信删除,谢谢:
我们先抓包。
直接搜一下encSecKey,出来这么多结果,其中一个带Login,比较可疑,进去看看
找一下encText和encSecKey [JavaScript] 纯文本查看 复制代码 params: p.encText,
encSecKey: p.encSecKey 这里比较可疑,下断
断下来了,没错了,就是这里了。
我们先看encText [JavaScript] 纯文本查看 复制代码 o.encText = i(e, r),
o.encText = i(o.encText, a) 进入i函数看一下,很明显是一个aes,e是加密的内容,t是key。
e是原文 [JavaScript] 纯文本查看 复制代码 {"username":"xxxxxxxxxx@163.com","password":"35xxxxe4xxxx66c556f28cc7b11dxxxx","rememberLogin":"true","checkToken":"9ca17ae2e6ffcda170e2e6ee9bf767aca684d4b46aabxxxaa6c85b879e9eb0d85f89afaa9bf14291eb8688ed2af0feaec3b92a9cab9eace4699cxxx994f74a828a8fb6c54aa68e9f8xxx3ef29b97afce74b294xxxe"} 初步分析一下,password应该是md5,checktoken是动态的,应该是校验环境用的。
r='0CoJUm6Qyw8W8jud'看起来是固定的
a=16位随机字符
那么由此可得出: 先把e(原文)用固定的key进行AES加密得到o.encText,然后再次把o.encText用a(16位随机字符)进行AES加密,得到最终的o.encText。
我们看一下encSecKey [JavaScript] 纯文本查看 复制代码 o.encSecKey = c(a, t, n) 进入c方法看一下,这是一个RSA,公钥都有了。 encSecKey是把前面的a(16位随机字符)用RSA加密了
那么直接套用一下方法来验证一下 没问题,一致,RSA的就不验证了,应该是一样的。
params和encSecKey就完成了。
我们跟栈可以找到checktoken部分,直接扣下来即可
某易云音乐.zip
(270.53 KB, 下载次数: 129)
|