针对前端加密爆破的方法及实战案例
字数 1517 2025-08-20 18:17:47

前端加密爆破方法及实战案例详解

一、概述

现代Web应用系统普遍在后台登录界面使用JavaScript对密码进行加密处理,有些系统还会同时对用户名和密码进行加密。针对这种前端加密场景,我们可以采用以下两种主要方法进行爆破:

  1. 使用Burp插件直接调用加密函数在本地加密后进行爆破
  2. 使用工具模拟浏览器登录界面进行爆破

二、工具介绍

1. Blasting(图形化爆破工具)

优点

  • 自动化进行爆破和验证码识别
  • 无视加密方法
  • 调试难度较低

缺点

  • 结果仅包含title和响应长度
  • 爆破结果可能存在误报

下载方式
https://github.com/gubeihc/blasting

2. jsEncrypter(Burp前端加密Fuzz插件)

优点

  • 作为Burp插件安装使用
  • 爆破速度快
  • 准确率高
  • 结果查看方便

缺点

  • 需要下载加密JS到本地
  • 需要手动查找加密函数的调用方法

下载方式
https://github.com/c0ny1/jsEncrypter

3. BurpCrypto(Burp插件)

优点

  • 无需下载JS文件
  • 直接在Burp中进行加解密操作

缺点

  • 需要手动查找加密参数
  • 目前仅支持AES/DES加密、RSA公钥加密

下载方式
在Burp扩展商店搜索"BurpCrypto"安装

三、实战案例:通过BurpCrypto进行爆破(前缀+AES加密)

1. 加密方法查找步骤

  1. 初始测试

    • 输入测试用户名:123
    • 输入测试密码:456
    • 使用抓包工具拦截请求
  2. 观察加密参数

    • 确认用户名和密码都被加密
    • 记录加密参数名:loginName和loginPwd
  3. 浏览器开发者工具分析

    • 打开F12开发者工具
    • 搜索"loginName"关键词
  4. 设置断点调试

    • 在疑似加密函数调用的位置设置断点
    • 观察发现用户名添加了前缀"undefined#"
    • 继续向上追踪调用栈
  5. 分析前缀来源

    • 发现loginName = orgid + "#" + loginName1
    • 形成最终格式:undefind#123
  6. 识别加密算法

    • 单步执行发现使用AES加密
    • 记录AES的key和iv参数
  7. 确认加密细节

    • 加密模式:CBC
    • 填充方式:Pkcs7
    • 编码格式:base64
  8. 验证加密结果

    • 使用解密工具验证加密参数
    • 确认用户名和密码能成功解密

2. BurpCrypto配置及使用方法

  1. 插件配置

    • 打开Burp,选择BurpCrypto插件
    • 配置以下参数:
      • 加密算法:AES
      • 加密模式:CBC
      • 填充方式:PKCS7Padding
      • 密钥(Key):填写获取的key
      • 初始向量(IV):填写获取的iv
      • 输出编码:Base64
    • 点击"Add Processor"并命名
  2. 发送到爆破模块

    • 将捕获的登录包发送到Intruder模块
    • 标记用户名和密码参数为爆破点
  3. 配置处理规则

    • 用户名处理:
      1. 添加前缀"undefined#"
      2. 添加BurpCrypto扩展调用
    • 密码处理:
      1. 直接添加BurpCrypto扩展调用
  4. 执行爆破

    • 点击开始攻击进行爆破
  5. 解密功能

    • 完整选中密文内容
    • 右键选择BurpCrypto菜单
    • 使用"Get PlainText"功能解密

四、总结

前端加密爆破的关键在于:

  1. 准确识别加密算法和参数
  2. 合理选择爆破工具
  3. 正确配置爆破参数
  4. 验证加密/解密过程的有效性

BurpCrypto插件特别适合处理AES/DES/RSA等标准加密的前端加密场景,而jsEncrypter则更适合处理自定义加密逻辑的情况。Blasting工具则提供了无视加密方法的自动化爆破能力,适合快速测试但精度要求不高的场景。

前端加密爆破方法及实战案例详解 一、概述 现代Web应用系统普遍在后台登录界面使用JavaScript对密码进行加密处理,有些系统还会同时对用户名和密码进行加密。针对这种前端加密场景,我们可以采用以下两种主要方法进行爆破: 使用Burp插件直接调用加密函数在本地加密后进行爆破 使用工具模拟浏览器登录界面进行爆破 二、工具介绍 1. Blasting(图形化爆破工具) 优点 : 自动化进行爆破和验证码识别 无视加密方法 调试难度较低 缺点 : 结果仅包含title和响应长度 爆破结果可能存在误报 下载方式 : https://github.com/gubeihc/blasting 2. jsEncrypter(Burp前端加密Fuzz插件) 优点 : 作为Burp插件安装使用 爆破速度快 准确率高 结果查看方便 缺点 : 需要下载加密JS到本地 需要手动查找加密函数的调用方法 下载方式 : https://github.com/c0ny1/jsEncrypter 3. BurpCrypto(Burp插件) 优点 : 无需下载JS文件 直接在Burp中进行加解密操作 缺点 : 需要手动查找加密参数 目前仅支持AES/DES加密、RSA公钥加密 下载方式 : 在Burp扩展商店搜索"BurpCrypto"安装 三、实战案例:通过BurpCrypto进行爆破(前缀+AES加密) 1. 加密方法查找步骤 初始测试 : 输入测试用户名:123 输入测试密码:456 使用抓包工具拦截请求 观察加密参数 : 确认用户名和密码都被加密 记录加密参数名:loginName和loginPwd 浏览器开发者工具分析 : 打开F12开发者工具 搜索"loginName"关键词 设置断点调试 : 在疑似加密函数调用的位置设置断点 观察发现用户名添加了前缀"undefined#" 继续向上追踪调用栈 分析前缀来源 : 发现loginName = orgid + "#" + loginName1 形成最终格式:undefind#123 识别加密算法 : 单步执行发现使用AES加密 记录AES的key和iv参数 确认加密细节 : 加密模式:CBC 填充方式:Pkcs7 编码格式:base64 验证加密结果 : 使用解密工具验证加密参数 确认用户名和密码能成功解密 2. BurpCrypto配置及使用方法 插件配置 : 打开Burp,选择BurpCrypto插件 配置以下参数: 加密算法:AES 加密模式:CBC 填充方式:PKCS7Padding 密钥(Key):填写获取的key 初始向量(IV):填写获取的iv 输出编码:Base64 点击"Add Processor"并命名 发送到爆破模块 : 将捕获的登录包发送到Intruder模块 标记用户名和密码参数为爆破点 配置处理规则 : 用户名处理: 添加前缀"undefined#" 添加BurpCrypto扩展调用 密码处理: 直接添加BurpCrypto扩展调用 执行爆破 : 点击开始攻击进行爆破 解密功能 : 完整选中密文内容 右键选择BurpCrypto菜单 使用"Get PlainText"功能解密 四、总结 前端加密爆破的关键在于: 准确识别加密算法和参数 合理选择爆破工具 正确配置爆破参数 验证加密/解密过程的有效性 BurpCrypto插件特别适合处理AES/DES/RSA等标准加密的前端加密场景,而jsEncrypter则更适合处理自定义加密逻辑的情况。Blasting工具则提供了无视加密方法的自动化爆破能力,适合快速测试但精度要求不高的场景。