记某次常规js前端逆向
记某次js前端逆向 某次渗透测试过程中发现这样一个页面 登录抓包时发现密码被加密了 遇到密码加密怎么办?直接谷歌打断点逆向啊 F12 全文搜索password字段 找到加密点 继续下去 搜索encryptedPassword 开启打断点 对194行和203打断点接下来进行调式 继续 成功得到加密后的密文 接下来就是如何批量生成 这里我们利用execjs模块 pip install
记某次js前端逆向
某次渗透测试过程中发现这样一个页面

登录抓包时发现密码被加密了

遇到密码加密怎么办?直接谷歌打断点逆向啊
F12 全文搜索password字段


找到加密点 继续下去
搜索encryptedPassword

开启打断点
对194行和203打断点接下来进行调式

继续

成功得到加密后的密文 接下来就是如何批量生成
这里我们利用execjs模块
pip install pyexecjs
pyexecjs可以执行js文件 当然nodejs也行
主要这里是用来批量加密
案列:
这里定义一个s.js文件
function f(x,y) {
return x+y
}
python调用s.js
import execjs
with open('s.js', 'r', encoding='utf-8') as f: #代码意思为打开s.js文件
jstext = f.read()
ctx = execjs.compile(jstext) #加载js
x=1
y=2
result = ctx.call('f',x,y) #调用js里面的函数
print(result)

接下来就是利用python加密

这里的key在之前返回包中有我们直接导进去
function encryptedPassword(password){
//老的加密算法有问题,使用新的实现方法
var key = '10001&94dd2a8675fb779e6b9f7103698634cd400f27a154afa67af6166a43fc26417222a79506d34cacc7641946abda1785b7acf9910ad6a0978c91ec84d40b71d2891379af19ffb333e7517e390bd26ac312fe940c340466b4a5d4af1d65c3b5944078f96a1a51a5a53e4bc302818b7c9f63c4a1b07bd7d874cef1c3d4b2f5eb7871'
var split = key.split("&");
var publicKeyExponent = split[0];
var publicKeyModulus =split[1];
RSAUtils.setMaxDigits(200);
var key = new RSAUtils.getKeyPair(publicKeyExponent, "", publicKeyModulus);
var passwordEncry = RSAUtils.encryptedString(key,password.split("").reverse().join(""));//这里要对字符串进行反转,否则解密的密码是反的
return passwordEncry;
}
nodejs调式下

我们看到 RSAUtils未定义
继续上F12搜索RSAUtils

直接将代码抄下来
这里需要注意一个点 我们需要把encryptedPassword函数放在里面

去除$w和})(window);后继续debug下

这里oK
对比下之前浏览器后的密文

OJBK 没有任何问题
最后写入文件


没毛病