前言
本文章中所有内容仅供学习交流使用,不用于其他任何目的,所有内容均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx:Ethereal_02_06(添加请备注来意)
本文章未经许可禁止转载,禁止任何修改后二次传播,作者均不负责,若有侵权,请联系作者立即删除!
1、分析的登陆网站地址
aHR0cHM6Ly8yMzE1NDguYml6L2NoYXJ0LzI0
2、分析接口
https://231548.biz/api/v2/User/signIn 登录接口
这是具体的提交参数 可以看到是一堆乱码 完全看不懂
返回结果也是加密过的 我们接下来就分析提交和返回的加解密
3.定位加密入口,分析加密
先用简单的搜索法,搜索参数名字data,可以看到有很多结果
那么哪一个是我们需要的加密入口呢,经过排查,发现加密入口在这里,我们在这里打上断点
然后触发一下断点,发现正是我们需要的
然后进入这个T.a方法中查看
发现核心代码就只有这一块,我们拿到pycharm中,写一个方法,如下:
function get_data(e) { e = JSON.stringify(e) for (var t = "f7664c7ede31eda6c707d6df01b8a015", n = "", r = 0; r < e.length; r += 1) n += String.fromCharCode(e[r].charCodeAt() ^ t[r % t.length].charCodeAt()); return JSON.stringify(n) }
传入明文 即可得到正确的结果,结果如下可以看到跟抓包的结果是完全相同的
4.定位解密入口,分析解密
老样子,解密呢 我们还是用搜索大法 但是现在搜的可不是什么参数 ,而是json.parse
搜索之后我们可以看到同样有很多结果
然后一个个进去看,都不像,像的就打上断点,打完之后触发一下,发现断在了这个地方
这就是解密的核心代码,发现是AES的ECB标准算法
然后把这段代码拿下来放到pycharm上,引入crypto-js标准库
var CryptoJS = require("crypto-js")
把源代码里的S.a替换成CryptoJS
然后传入接口返回的数据(记得要把引号去掉即可成功解密)
结果如下:
成功解密
OK完结撒花
5.结束语
wx:Ethereal_02_06(添加请备注来意)
仅用于学习交流👉侵权+wx