jsEncrypter的安装和使用(逆向前端加密)


jsEncrypter插件+phantomjs自动加密爆破实战

目录

  1. 安装
  2. 实操使用
  3. 启动与爆破
  4. 爆破流程总结

安装

  1. 先要安装phantomjs 安装地址
  2. 然后安装jsEncrypter插件 安装地址

下载好之后解压,把phantomjs的地址设置在环境变量中:

  • 系统——高级系统设置——环境变量——系统变量——双击Path——新建填入地址

然后在Win + R输入cmd打开命令行,输入phantomjs,弹出如下界面说明设置成功:

打开burpsuite,在extensions模块添加jsEncrypter插件:


实操使用

打开上海交通大学交我算平台 https://account.hpc.sjtu.edu.cn/#/login

账号密码输入123456,可以看到密码被加密了:

打开调用栈可以看见:

一连串(因为栈的特性)从下往上执行,我们需要找到它加密的地方。

这时候你会问了,同学同学这么多你怎么找到加密的在哪里啊?一个一个找吗?当然不是了!

这个时候需要了解客户端处理数据的顺序:
它需要接收数据,然后数据加密,最后发送到服务端,服务端解密,然后判断逻辑。

选中中间那个打上断点,发现:

上面就是我们的账号和密码。解读一下代码:

i = n.emailInput.value;
a = n.pwdInput.value;

获取我们的账号和密码,这个时候显示的还是没加密的,说明加密就在下面,一步步下去:

var r = new JSEncrypt, o = C.RSACODE;
r.setPublicKey(o);
var s = r.encrypt(a);

设置个变量r,new一个对象,r为设置的公钥,s就是加密后的a也就是密码。变成了Rsv一串就是加密后的密码。

测试一下:

能正常加密,我们需要找到它加密算法实现的地方。追踪加密对象,找到它是在这实现的:

我们把全部代码复制下来,然后加上它调用的那样我们自己写个调用,运行试一下:

正常运行。

然后我们需要配置一下jsEncrypter,把这个加密算法文件放在该目录下:

打开server编辑如下:

解释一下这段代码:传一个payload,把这个payload加密后赋值给newpayload,然后返回newpayload。


启动与爆破

启动:

打开burpsuite:

成功生成。

这时候我们抓个包,发送到intruder爆破模块,选好参数然后和字典就可以实行爆破了:


可以看到我们的payload都是加密之后的,这样发到服务端能正常解密不会不符合逻辑。(可以用来已知用户进行爆破密码,这里演示一下所以用123456)


爆破流程总结

  1. 安装phantomjs并配置环境变量
  2. 安装jsEncrypter插件
  3. 分析目标前端加密逻辑,提取加密算法
  4. 配置jsEncrypter服务,放置加密算法
  5. burpsuite中添加插件,抓包并爆破
  6. 爆破payload自动加密,服务端可正常识别


---

声明:智爱的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - jsEncrypter的安装和使用(逆向前端加密)


手握日月摘星辰,世间无我这般人