js逆向实战之某龙贷登录参数加密

声明:本篇文章仅用于知识分享,不得用于其他用途

网址:aHR0cHM6Ly93d3cuZWxvYW5jbi5jb20v

加密逻辑

  1. 点击登录,输入用户名和密码看触发的数据包。
    image
  2. password经过加密处理,由于这几个参数名都比较常见,全局搜索肯定会有很多结果,不好定位,所有这里选择搜索url。
    image
  3. 只有一处,并将/pcgway/login/v1/02赋值给了login_url_,如果后面想要调用这个接口会使用login_url_,全局搜索,只有2处。
    image
  4. 打断点,触发。
    image
  5. 可以看到运行到这里的时候password已经被加密了,所以得通过调用栈一步一步往上找。
    image
    image
    image
  6. 在运行到login函数后参数被加密完成,在它附近能看到明显的加密算法了。
    image
  7. 打断点,看触发的是哪一个。
    image
  8. 找到加密的地方了,关键函数r.PUBLIC.encryptByDES,看下它的实现。
    image
  9. encryptByDES需要两个参数,一个是需要加密的内容,一个是DESkey
    image
    看着像个定值,在encryptByDES函数的上方也能看到定义。
    image
  10. 逻辑就很清晰了,写代码实现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));
    
    运行结果与数据包中的一致。
    image
posted @ 2025-07-12 11:36  死不悔改奇男子  阅读(114)  评论(0)    收藏  举报