暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 联动 Node 实现 JS 破解登录密码小技巧分享

鸡仔说 2020-09-04
573
实验网站
aHR0cHM6Ly9jai5lbG9hbmNuLmNvbS8=
破解对应位置
登录密码的加密部分
图示↓
分析解密过程
首先,我们找到登录密码的具体 URL,这一步一般是全局搜索关键参数,比如 login ,或者 password 模块,这个网站的 url 请求很少,非常容易就从 xhr 中找到了。对应 login/v1/02 这个请求
接下来往下翻
看到吗?password 这个并非是我们输入时候的密码,我们的目标就是通过原始密码,得出这个值
这里我们先通过全局搜索 password 关键字的方式,查看文件中是否有明文的密码字段
很幸运的是,我们查找第一个文件的时候,就找到了关键加密的位置
然后我们去到 source 文件中,找到对应的 js 文件,在我们看 password 位置打上断点
我们再次刷新页面,输入密码,看到它已经跳到了我们打断点的位置
鼠标移动到箭头位置,发现 o.PUBLIC.DESkey 是个固定值:e9284d45-cf2a-4e46-9367-f122413ca6b0
前面 this.checkPwd.password 通过将鼠标移动到 password 上发现,它也是我们自己的原始密码。后面的 trim 是个匿名的函数头,先不管它。重点是 encryptByDES 。我们将鼠标移动到函数上,然后上方会出现链接到原位置的跳转提示
点击进去我们就进入 encryptByDES 的函数具体实现上
接下来就简单了,通过 python 实现原算法,或者通过 python 调用 js 构造这个函数就可以实现 password 解密了,这里我们采用后一种方式
代码实现
首先你需要安装好 node。
安装教程可以参照:https://www.runoob.com/nodejs/nodejs-install-setup.html
step1:初始化 node 环境,命令行键入
    npm init -y
    step2:安装好 crypto-js 环境包(当然你也可以通过拷贝原来的 js 包到本地的方式)
      npm install crypto-js -S
      step3:创建实现解密逻辑的 js 文件
        touch crack.jscode crack.js 这个是通过 vscode 打开 crack.js 的命令
        引入 crypto-js 包,将之前的破解代码逻辑拷贝进去
          var crack = function(t, e) {var CryptoJS = require("crypto-js");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()}
          step4: 通过 python 调用 js 文件实现解密
            touch crack.py
            code crack.py
            写入 python 调用 js 文件代码逻辑
              import execjs
              import os

              js_file = open("./crack.js").read()
              js_compile = execjs.compile(js_file)

              crack_result = js_compile.call("crack", "frfrfrf", "e9284d45-cf2a-4e46-9367-f122413ca6b0")

              print(f"{crack_result}")

              最后通过命令行运行,得到结果
                >>> python crack.py
                StULrhXDyVg=

                破解目录下的文件如下
                  >>>ls
                  crack.js crack.py node_modules package-lock.json package.json
                  后面三个node_modules、package-lock.json、package.json。均是由 node 安装依赖包时生成的文件,不可移除它们,就酱
                  参考资料
                  https://www.cnblogs.com/cina33blogs/p/9210931.html
                  https://mp.weixin.qq.com/s/e0jFdh0hz4ro89i80SJuRA



                  文章转载自鸡仔说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论