零基础用burp插件jsEncrypter+phantomjs+AI提取加密算法实现遍历被自定义算法加密的参数(加密传输爆破)

⚠️ 免责声明

本文所涉及的技术、工具及方法仅供网络安全研究、授权测试及学习交流使用。

严禁非法使用:未经目标系统所有者明确书面授权,任何利用本文所述技术对他人系统进行渗透、爆破、数据窃取或破坏的行为,均属违法行为。

法律责任自担:读者因不当使用本文内容所产生的任何直接或间接法律后果、经济纠纷及安全事件,均由行为人自行承担,与本文作者及发布平台无关。

遵守法律法规:请严格遵守《中华人民共和国网络安全法》《中华人民共和国数据安全法》等相关法律法规,在合法授权范围内开展安全测试。

合规操作建议:如您需在实际工作中进行安全评估,请务必事先获得正式授权,并在测试完成后及时向被测方提交漏洞报告。

作者仅提供技术思路分享,不鼓励、不纵容任何形式的黑灰产行为。请做一名有底线的安全从业者。

一、背景:

有时我们在抓包发现一些参数会被自定义加密,或者用户名密码被自定义加密了。(如下图) 那我们怎么解决这个问题呢?(顺便吐槽一下,我在网上查找了好多资料都是零碎的,对于我这种零基础不太友好 哈哈哈,终于东拼西凑出来了)

jsEncrypter 插件的核心思路是 “以彼之矛,攻彼之盾” ——既然前端加密逻辑是由 JavaScript 代码执行的,就在 BurpSuite 外部模拟一个浏览器环境,加载目标网站相同的加密 JS 文件,用相同逻辑对 Payload 进行加密,再替换请求中的对应字段。实现原理如下图所示。

目录

一、背景:

二、环境准备

1 phantomJS

2 Maven下载安装

3 jsEncrypter插件下载

三、  实战分析前端提取js代码并爆破

1 让AI提取js加密逻辑

2 爆破

参考资料:

提纲:JS逆向,前端加密暴力破解(小白无痛学习)-腾讯云开发者社区-腾讯云

phantonJS下载与使用:

phantomjs下载安装与使用_phantomjs安装-CSDN博客

插件项目地址及讲解:https://github.com/c0ny1/jsEncrypter

Maven下载与使用:

【2025 最新】 Maven 下载安装与配置教程(超详细带图文Windows 版):从入门到实战_maven下载安装与配置-CSDN博客

Js逆向:

https://www.bilibili.com/video/BV1Psu4zWEUQ/?spm_id_from=333.1391.0.0&p=2&vd_source=7d8464f1ea919ffdc1761c211c6d1c4e

网页加密传输插件&jsEncrypter&phantomJS:

https://www.bilibili.com/video/BV1i7411876q/?spm_id_from=333.1391.0.0&vd_source=7d8464f1ea919ffdc1761c211c6d1c4e

二、环境准备

Burpsuite肯定是必备的,相信大家都有,然后Java版本最好是java21

1 phantomJS

下载

下载地址:

https://phantomjs.org/download.html

是哪个系统就下载哪个,我这里用的是Windows.

配置环境变量

下载好后放到合适的文件夹下解压 打开文件夹

点一下地址栏就可以复制地址

右键此电脑选择属性

点一下地址栏就可以复制地址

选择高级系统设置

选择环境变量

在下面的系统环境变量中找到Path点击选择编辑

选择新建,将刚刚复制的地址粘贴进去,最后依次点击确定,有三个确定

测试环境变量是否添加成功

按win+r输入cmd回车打开终端

输入命令:

phantomjs --version

回车,返回版本好就说明配置好了

2 Maven下载安装

下载

因为插件是用java写的,需要Maven编译成 Burp 能加载的 .jar 文件

下载地址:

​
https://maven.apache.org/download.cgi

选择Link下带bin-zip的压缩包下载

配置环境变量

建议放在D:\Apache\apache-maven-3.9.16下,将解压的第一层文件夹改名Apache,然后添加一个文件夹repository

右击此电脑-->属性-->环境变量和上面一样就不贴了,忘记了的往上爬.点击新建,变量名输入:

MAVEN_HOME

变量值输入安装位置:

D:\Apache\apache-maven-3.9.16

点击一次确定回到环境变量的页面

选择Path-->编辑-->新建-->输入:

%MAVEN_HOME%\bin

依次点击确定即可

测试环境配置是否成功

重新打开命令行,输入:

mvn -version

回车,回显版本就是成功了

配置仓库路径地址和镜像地址

默认配置下,Maven 会从国外中央仓库下载依赖,速度极慢且易失败。需修改settings.xml文件,配置本地仓库和国内镜像。

进入conf文件夹下,用vscode或者能编辑代码的(记事本也可以)打开setttings.xml文件编辑

CTRL+F查找<localRepository>标签(默认被注释)去掉注释,然后把里面的替换为本地仓库地址

直接将下面的代码覆盖过去,配置阿里云的镜像 

<mirrors>

 

    <mirror>

        <id>aliyun-maven</id>

        <mirrorOf>central</mirrorOf>

        <name>Aliyun Central Repository</name>

        <url>https://maven.aliyun.com/repository/public</url>

    </mirror>

    <!-- 备选镜像:如需切换到华为云,注释掉上面的 aliyun-maven 并取消下面注释。

         注意:Maven 的 mirror 没有“故障自动切换”机制,同一个仓库只会命中第一个匹配的镜像。 -->

    <!--

    <mirror>

        <id>huaweicloud</id>

        <mirrorOf>central</mirrorOf>

        <name>HuaweiCloud Repository</name>

        <url>https://repo.huaweicloud.com/repository/maven/</url>

    </mirror>

    -->



    <!-- <mirror>

      <id>maven-default-http-blocker</id>

      <mirrorOf>external:http:*</mirrorOf>

      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>

      <url>http://0.0.0.0/</url>

      <blocked>true</blocked>

    </mirror> -->

  </mirrors>

3 jsEncrypter插件下载

这一步需要访问外网,国内可能有点卡上不去,可以用Watt Toolkit免费访问GitHub

下载地址:

选择自己的操作系统

点击 接受并下载

在微软商店里下载

勾选GitHub再点击一键加速就能访问GitHub啦

访问GitHub项目地址:https://github.com/c0ny1/jsEncrypter

点击绿色的Code,选择Download ZIP下载

解压到合适的路径下面,点地址栏输入cmd回车

输入:

mvn package

回车,将会编译下载好的java项目成jsEncrypter插件

测试能不能跑已有的加密算法

打开Burp,点击扩展,点击添加,英文的就翻译一下吧

点击选择文件,找到你在GitHub上下载的插件应该在jsEncrypter-master\target路径下,然后点击下一个,显示输出

点击插件

找到这个路径下,点击地址栏输入cmd回车

输入命令:

phantomjs.exe jsEncrypter_base64.js

回车

点击Connect连接,IsConnect就会由红色的False变成绿色的True,点击Test测试就会将左边的按照base64加密显示在右边,注意123456加密之后为MTIzNDU2,后面要考

GitHub上面下载的项目还带一个提供测试的环境,可以用小皮或者靶机部署,没有小皮就上网找教程.然后项目自带几个常见的加密算法

将jsEncrypter-master\test路径下的webapp放到网站根目录(WWW下面),再打开小皮启动服务

浏览器输入127.0.0.1/webapp模拟访问的登录框

随便输入账号密码admin/123456-->F12或者右键选择检查-->点击网络(NetWork)-->点击提交submit-->找可能传输参数的包,然后点击它-->选择负载(payload)发现密码是被加密了,密码的字段为password:MTIzNDU2,和bp插件加密的是一样的

三、  实战分析前端提取js代码并爆破

1 让AI提取js加密逻辑

首先我们打开有登录功能的网页,按F12-->点击源代码-->刷新页面会看到几个js模块,一般索引网页是调用加密算法,jquery是一些js运行所需要的依赖,rsa里面一般都是加密算法,看见未知的js文件名就去问AI是干什么的,和加密有没有关系。我们右击可能和加密有关的js文件,选择另存。然后交给AI.

提示词:

burp插件jsEncrypter+phantomjs,分析前端代码结构,提取出能加密参数整个过程的代码

我用的是deep seek,它提示根据实际公钥调整参数,说明它没找到公钥。

我们来到索引,发现指数和模组,这就是公钥,发给AI让它调整代码。

生成之后你看AI的描述没啥问题了就新建文本文件,将代码保存

更该文件后缀为js,我定义成ai提取.js

去找加载加密算法的js文件,路径为:

"jsEncrypter-master\test\TestScript\Base64\jsEncrypter_base64.js"

把ai提取.js文件和jsEncrypter_base64.js文件发给AI,让它修改成jsEncrypter_base64.js能接收ai提取.js处理参数的值(我更改了js文件名,所以长得不一样)

提示词:

这是加载加密算法的js文件jsEncrypter_TEMPLATE.js和刚刚提取加密算法的js文件,以该文件为模板修改ai提取.js,使之能够正常加载

它没有给完整的,我们就按要求更改相关的代码然后保存。这两个文件最好放同一路径下,然后在那个路径下打开命令行。我放在桌面

右键终端。

输入:

phantomjs.exe jsEncrypter_base64.js

启动服务(如果之前启动了服务还没关,按ctrl+c中止服务,再输入命令启动),

打开bp找到插件再点击连接,然后测试

我们发现和我们生成的长度是一样的,因为有随机种子和时间戳,每次都不一样。

没关系,这不影响,只要是按照这个算法加密的就能被服务器还原出来。我们把生成的加密值替换发送返回200,说明成功了。

2 爆破

接下来我们尝试爆破,我抓包几轮发现PHPSESSID字段标识会话,KEY_RANDOMDATA字段标识每次请求,我们实际情况中还要重定向KEY_RANDOMDATA这个变量,就像token递归提取,验证码也需要另外的插件识别。我们在这里简化没有这个东西,也没有验证码。只看能否将加载的字典被算法加密发送出去。

添加密码变量,输入几个参数进去,payload处理选择burp扩展

选择开始攻击,发现参数都被加密了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值