ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

零基础用burp插件jsEncrypter+phantomjs+AI提取加密算法实现遍历被自定义算法加密的参数(加密传输爆破) ⚠️ 免责声明本文所涉及的技术、工具及方法仅供网络安全研究、授权测试及学习交流使用。严禁非法使用未经目标系统所有者明确书面授权任何利用本文所述技术对他人系统进行渗透、爆破、数据窃取或破坏的行为均属违法行为。法律责任自担读者因不当使用本文内容所产生的任何直接或间接法律后果、经济纠纷及安全事件均由行为人自行承担与本文作者及发布平台无关。遵守法律法规请严格遵守《中华人民共和国网络安全法》《中华人民共和国数据安全法》等相关法律法规在合法授权范围内开展安全测试。合规操作建议如您需在实际工作中进行安全评估请务必事先获得正式授权并在测试完成后及时向被测方提交漏洞报告。作者仅提供技术思路分享不鼓励、不纵容任何形式的黑灰产行为。请做一名有底线的安全从业者。一、背景有时我们在抓包发现一些参数会被自定义加密或者用户名密码被自定义加密了。(如下图) 那我们怎么解决这个问题呢(顺便吐槽一下,我在网上查找了好多资料都是零碎的,对于我这种零基础不太友好 哈哈哈,终于东拼西凑出来了)jsEncrypter 插件的核心思路是 “以彼之矛攻彼之盾” ——既然前端加密逻辑是由 JavaScript 代码执行的就在 BurpSuite 外部模拟一个浏览器环境加载目标网站相同的加密 JS 文件用相同逻辑对 Payload 进行加密再替换请求中的对应字段。实现原理如下图所示。目录一、背景二、环境准备1 phantomJS2 Maven下载安装3 jsEncrypter插件下载三、 实战分析前端提取js代码并爆破1 让AI提取js加密逻辑2 爆破参考资料:提纲:JS逆向,前端加密暴力破解(小白无痛学习)-腾讯云开发者社区-腾讯云phantonJS下载与使用:phantomjs下载安装与使用_phantomjs安装-CSDN博客插件项目地址及讲解:https://github.com/c0ny1/jsEncrypterMaven下载与使用:【2025 最新】 Maven 下载安装与配置教程超详细带图文Windows 版从入门到实战_maven下载安装与配置-CSDN博客Js逆向:https://www.bilibili.com/video/BV1Psu4zWEUQ/?spm_id_from333.1391.0.0p2vd_source7d8464f1ea919ffdc1761c211c6d1c4e网页加密传输插件jsEncrypterphantomJS:https://www.bilibili.com/video/BV1i7411876q/?spm_id_from333.1391.0.0vd_source7d8464f1ea919ffdc1761c211c6d1c4e二、环境准备Burpsuite肯定是必备的,相信大家都有,然后Java版本最好是java211 phantomJS下载下载地址:https://phantomjs.org/download.html是哪个系统就下载哪个,我这里用的是Windows.配置环境变量下载好后放到合适的文件夹下解压 打开文件夹点一下地址栏就可以复制地址右键此电脑选择属性点一下地址栏就可以复制地址选择高级系统设置选择环境变量在下面的系统环境变量中找到Path点击选择编辑选择新建,将刚刚复制的地址粘贴进去,最后依次点击确定,有三个确定测试环境变量是否添加成功按winr输入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文件编辑CTRLF查找localRepository标签默认被注释去掉注释,然后把里面的替换为本地仓库地址直接将下面的代码覆盖过去,配置阿里云的镜像mirrors mirror idaliyun-maven/id mirrorOfcentral/mirrorOf nameAliyun Central Repository/name urlhttps://maven.aliyun.com/repository/public/url /mirror !-- 备选镜像如需切换到华为云注释掉上面的 aliyun-maven 并取消下面注释。 注意Maven 的 mirror 没有“故障自动切换”机制同一个仓库只会命中第一个匹配的镜像。 -- !-- mirror idhuaweicloud/id mirrorOfcentral/mirrorOf nameHuaweiCloud Repository/name urlhttps://repo.huaweicloud.com/repository/maven//url /mirror -- !-- mirror idmaven-default-http-blocker/id mirrorOfexternal:http:*/mirrorOf namePseudo repository to mirror external repositories initially using HTTP./name urlhttp://0.0.0.0//url blockedtrue/blocked /mirror -- /mirrors3 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)发现密码是被加密了,密码的字段为passwordMTIzNDU2和bp插件加密的是一样的三、 实战分析前端提取js代码并爆破1 让AI提取js加密逻辑首先我们打开有登录功能的网页按F12--点击源代码--刷新页面会看到几个js模块一般索引网页是调用加密算法jquery是一些js运行所需要的依赖rsa里面一般都是加密算法看见未知的js文件名就去问AI是干什么的和加密有没有关系。我们右击可能和加密有关的js文件选择另存。然后交给AI.提示词burp插件jsEncrypterphantomjs分析前端代码结构提取出能加密参数整个过程的代码我用的是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启动服务如果之前启动了服务还没关按ctrlc中止服务再输入命令启动打开bp找到插件再点击连接然后测试我们发现和我们生成的长度是一样的因为有随机种子和时间戳每次都不一样。没关系这不影响只要是按照这个算法加密的就能被服务器还原出来。我们把生成的加密值替换发送返回200说明成功了。2 爆破接下来我们尝试爆破我抓包几轮发现PHPSESSID字段标识会话KEY_RANDOMDATA字段标识每次请求我们实际情况中还要重定向KEY_RANDOMDATA这个变量就像token递归提取验证码也需要另外的插件识别。我们在这里简化没有这个东西也没有验证码。只看能否将加载的字典被算法加密发送出去。添加密码变量输入几个参数进去payload处理选择burp扩展选择开始攻击发现参数都被加密了。
返回列表