关于python:Python-联动-Node-实现-JS-破解登录密码小技巧分享

4次阅读

共计 1671 个字符,预计需要花费 5 分钟才能阅读完成。

试验网站

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…

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/cina3…

https://mp.weixin.qq.com/s/e0…

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0