找回密码
 立即注册
首页 业界区 安全 js逆向实战之某龙贷登录参数加密

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

愤血冒 9 小时前
声明:本篇文章仅用于知识分享,不得用于其他用途

网址:aHR0cHM6Ly93d3cuZWxvYW5jbi5jb20v
加密逻辑


  • 点击登录,输入用户名和密码看触发的数据包。
    1.png

  • password经过加密处理,由于这几个参数名都比较常见,全局搜索肯定会有很多结果,不好定位,所有这里选择搜索url。
    2.png

  • 只有一处,并将/pcgway/login/v1/02赋值给了login_url_,如果后面想要调用这个接口会使用login_url_,全局搜索,只有2处。
    3.png

  • 打断点,触发。
    4.png

  • 可以看到运行到这里的时候password已经被加密了,所以得通过调用栈一步一步往上找。
    5.png

    6.png

    7.png

  • 在运行到login函数后参数被加密完成,在它附近能看到明显的加密算法了。
    8.png

  • 打断点,看触发的是哪一个。
    9.png

  • 找到加密的地方了,关键函数r.PUBLIC.encryptByDES,看下它的实现。
    10.png

  • encryptByDES需要两个参数,一个是需要加密的内容,一个是DESkey。
    11.png

    看着像个定值,在encryptByDES函数的上方也能看到定义。
    12.png

  • 逻辑就很清晰了,写代码实现password参数的加密(由于是个借贷软件,就没注册账户,只搞懂了加密逻辑)。
    1. var CryptoJS = require("crypto-js")
    2. var e = "e9284d45-cf2a-4e46-9367-f122413ca6b0"
    3. function encryptByDES(t, e) {
    4.         var a = CryptoJS.enc.Utf8.parse(e);
    5.         try {
    6.                 var s = CryptoJS.DES.encrypt(String(t), a, {
    7.                         mode: CryptoJS.mode.ECB,
    8.                         padding: CryptoJS.pad.Pkcs7
    9.                 })
    10.         } catch (t) {
    11.                 console.log(t)
    12.         }
    13.         return s.toString()
    14. }
    15. console.log(encryptByDES("123456", e));
    复制代码
    运行结果与数据包中的一致。
    13.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册