前端js加密爆破分析

admin 2022年2月17日01:55:04评论357 views字数 2193阅读7分18秒阅读模式


前端js加密爆破分析

破军安全实验室


    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约2200字,阅读约需6分钟。


前端js加密爆破分析
前端js加密爆破分析

0x00 定位js调用

前端js加密爆破分析



红队某目标登陆抓包发现存在编码


前端js加密爆破分析



解码看一下,不是base64,那就确认是前端加密


前端js加密爆破分析


其实前端常见的加密就aesdes两种,但部分网站也开始用国密算法了,其中最最常见的就是aescbcecb两种算法,常规网站里面几乎占到80%

 

浏览器定位js文件,f12定位登录框源码位置


前端js加密爆破分析

获取到

登陆表单元素定义

<form class="el-form loginformel-form--inline">

用户名元素定义

<div class="el-form-item usernamenoborder no_border is-required">

密码元素定义

<div class="el-form-item noborderno_border is-required" id="login_psw_out">

选取有特征的值去js文件内搜索,我一般是选择密码或用户名的“id”值(login_psw_out)进行定位,这里也可以选取表单class的“loginform”值

 

chunk-eb0ca2d0.f7daedc4.js文件匹配到两次,我们去看js文件内容,发现是在读取页面元素值


前端js加密爆破分析

那么js的加密调用就以这个开始分析,原因?每个文件翻一遍


前端js加密爆破分析
前端js加密爆破分析

0x01 Js加密分析

前端js加密爆破分析



前面初步定位到js文件上,再使用请求内的字段(verificationCode)对js进行搜索,定位调用函数代码段


前端js加密爆破分析


翻了一下


前端js加密爆破分析


断点js代码,点击登陆查看内存,鼠标放在“userName”上可以直接看到明文test


前端js加密爆破分析


第二个断点就变成了密文,那么加密操作就是在这几行代码之间,那就去分析Object(r.b)


前端js加密爆破分析


将鼠标放到b上可会显示来源的js,点击跳转过去直接到调用函数,aes加密方式和keyvi就很明显了


前端js加密爆破分析


找一个在线网站进行测试

http://tool.chacuo.net/cryptaes


前端js加密爆破分析


确认和burp内一样


前端js加密爆破分析

 


前端js加密爆破分析
前端js加密爆破分析

0x02 burp爆破

前端js加密爆破分析



windows推荐使用nodejs,到官网下载安装,cmd执行node命令如下表示环境搭建成功


前端js加密爆破分析


burp插件使用jsEncrypter,成果效果如下


前端js加密爆破分析


网上说将js文件保存下来加载,这种方法太麻烦了,直接使用

npm install crypto-js

安装对应加密库,在nodejs_server.js内引用即可


前端js加密爆破分析


运行node nodejs_server.js开启服务,burp连接,加密字符串,结果与前面抓包一样,完结


前端js加密爆破分析


前端js加密爆破分析
前端js加密爆破分析

0x03 其他

前端js加密爆破分析


其实nodejs运行部分可以改成加密指定文件内容输出到新文件


除了burp也可以python脚本调用,浏览器访问


前端js加密爆破分析


post请求

POST / HTTP/1.1Host: 127.0.0.1:1664Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: closeContent-Type:application/x-www-form-urlencodedContent-Length: 12 payload=test


前端js加密爆破分析


前端js加密爆破分析
前端js加密爆破分析

0x04 sign签名分析

前端js加密爆破分析


新添字段后,签名无效,那么就是全内容的sign校验(校验不会包含http消息头)


前端js加密爆破分析


第一步先看长度,40


前端js加密爆破分析


用常见的md5(这里肯定不是)、sha算法看一下,对不上,那就只有去js文件里找了


前端js加密爆破分析



通过timestamp字段定位到app.9e755cb0.js文件,开始分析


前端js加密爆破分析


这里通过断点查看,内存中n值如下,原来sign是包含了时间、固定key、请求内容的,怪不得对不上

"yjihua_stationBT3muleJTQChzbZWappKeyyjihua_stationformatjsonparam_json{"method":"xxxxxxxxxxxxxxxxxxxx","userName":"MPcRaxIxPldcFycE4eSgUg==","password":"bXZI55bgBXvB5KFgLD5rKw==","mac":"","verificationCode":"","langCode":"zh_CN","requestChannel":"PC"}timestamp2021-12-2310:20:35version1.0BT3muleJTQChzbZWyjihua_station"


前端js加密爆破分析


s()进行逐步分析,定位到c类,包含如下函数,明显是个签名算法类


前端js加密爆破分析


断点到s()通过“步入”调试(尝试了hmacsha1也对不上),进入(自定义?)签名函数,可以发现a20位)的hex就是sign


前端js加密爆破分析


76 204 186 对应4c cc ba


前端js加密爆破分析


后面只需要请团队大佬帮忙写出脚本即可前端js加密爆破分析



 声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,破军安全实验室及文章作者不为此承担任何责任。

    破军安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经破军安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。


前端js加密爆破分析

破军安全实验室

# 长按二维码 关注我们 #



原文始发于微信公众号(破军安全实验室):前端js加密爆破分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月17日01:55:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   前端js加密爆破分析https://cn-sec.com/archives/781766.html

发表评论

匿名网友 填写信息