声明:本篇文章仅用于知识分享,不得用于其他用途
网址:aHR0cHM6Ly93d3cuZWxvYW5jbi5jb20v
加密逻辑
- 点击登录,输入用户名和密码看触发的数据包。
- password经过加密处理,由于这几个参数名都比较常见,全局搜索肯定会有很多结果,不好定位,所有这里选择搜索url。
- 只有一处,并将/pcgway/login/v1/02赋值给了login_url_,如果后面想要调用这个接口会使用login_url_,全局搜索,只有2处。
- 打断点,触发。
- 可以看到运行到这里的时候password已经被加密了,所以得通过调用栈一步一步往上找。
- 在运行到login函数后参数被加密完成,在它附近能看到明显的加密算法了。
- 打断点,看触发的是哪一个。
- 找到加密的地方了,关键函数r.PUBLIC.encryptByDES,看下它的实现。
- encryptByDES需要两个参数,一个是需要加密的内容,一个是DESkey。
看着像个定值,在encryptByDES函数的上方也能看到定义。
- 逻辑就很清晰了,写代码实现password参数的加密(由于是个借贷软件,就没注册账户,只搞懂了加密逻辑)。
- var CryptoJS = require("crypto-js")
- var e = "e9284d45-cf2a-4e46-9367-f122413ca6b0"
- function encryptByDES(t, e) {
- var a = CryptoJS.enc.Utf8.parse(e);
- try {
- var s = CryptoJS.DES.encrypt(String(t), a, {
- mode: CryptoJS.mode.ECB,
- padding: CryptoJS.pad.Pkcs7
- })
- } catch (t) {
- console.log(t)
- }
- return s.toString()
- }
- console.log(encryptByDES("123456", e));
复制代码 运行结果与数据包中的一致。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |