某众测前端解密学习记录
字数 1084 2025-08-19 12:42:36

某众测前端解密学习记录解析与教学文档

1. 背景概述

在一次大型金融公司众测项目中,发现所有网络请求数据都是加密的,这给渗透测试带来了挑战。通过使用Jsrpc和autoDecoder工具进行学习调试,最终成功还原了数据包,并挖掘出高危漏洞。

2. 关键工具与技术

2.1 Jsrpc

Jsrpc是一个用于RPC(远程过程调用)的工具,在前端加密分析中特别有用:

  • 允许拦截和修改JavaScript函数调用
  • 可以动态Hook加密函数
  • 提供实时调试能力

2.2 autoDecoder

autoDecoder是一个自动化解密过程的工具:

  • 自动识别常见加密模式
  • 支持自定义解密算法
  • 提供批量解密功能

3. 解密流程详解

3.1 数据包捕获与分析

  1. 使用抓包工具(如Burp Suite)捕获加密请求
  2. 分析请求特征:
    • 请求头中的加密标识
    • 请求体的结构
    • 参数命名规律

3.2 前端加密定位

  1. 使用浏览器开发者工具分析前端JavaScript
  2. 搜索关键词如"encrypt"、"decrypt"、"AES"、"RSA"等
  3. 定位加密函数入口点

3.3 加密算法逆向

  1. 使用Jsrpc Hook关键加密函数
  2. 记录函数输入输出
  3. 分析加密参数:
    • 密钥来源
    • 加密模式(如CBC、ECB)
    • 填充方式
    • IV向量处理

3.4 数据包还原

  1. 使用autoDecoder配置解密参数
  2. 测试解密算法准确性
  3. 批量处理捕获的数据包

4. 漏洞挖掘技巧

  1. 还原明文后检查:

    • 参数是否可遍历
    • ID是否可预测
    • 是否存在越权可能
  2. 修改明文参数后重新加密测试:

    • 金额篡改
    • ID替换
    • 权限提升尝试
  3. 关注业务逻辑漏洞:

    • 重复提交
    • 并发请求
    • 时序问题

5. 关键代码片段分析

根据评论中提到的代码片段:

param = request.form.get('dataBody')  # 获取post参数

这行代码获取的是加密后的数据体,需要进一步解密处理。解密流程可能包含:

  1. Base64解码
  2. 对称解密(如AES)
  3. 非对称解密(如RSA)
  4. 解压缩(如gzip)

6. 实战建议

  1. 加密顺序分析技巧:

    • 从后向前逆向(先看最后一步是什么编码/加密)
    • 查找密钥硬编码或动态获取逻辑
    • 注意时间戳或随机数参与加密的情况
  2. 常见加密模式识别:

    • AES: 固定块大小(16字节),可能有IV
    • RSA: 长文本,使用公钥加密
    • 自定义加密: 混合多种算法,需逐步分析
  3. 调试技巧:

    • 使用console.log输出中间值
    • 设置断点观察变量变化
    • 对比多个请求分析加密模式

7. 总结

前端加密分析的关键在于:

  1. 准确定位加密函数
  2. 理解加密流程和参数
  3. 使用工具辅助解密
  4. 在明文状态下进行漏洞测试

通过这种方法,即使在高度加密的环境中,也能有效发现潜在的安全漏洞。

某众测前端解密学习记录解析与教学文档 1. 背景概述 在一次大型金融公司众测项目中,发现所有网络请求数据都是加密的,这给渗透测试带来了挑战。通过使用Jsrpc和autoDecoder工具进行学习调试,最终成功还原了数据包,并挖掘出高危漏洞。 2. 关键工具与技术 2.1 Jsrpc Jsrpc是一个用于RPC(远程过程调用)的工具,在前端加密分析中特别有用: 允许拦截和修改JavaScript函数调用 可以动态Hook加密函数 提供实时调试能力 2.2 autoDecoder autoDecoder是一个自动化解密过程的工具: 自动识别常见加密模式 支持自定义解密算法 提供批量解密功能 3. 解密流程详解 3.1 数据包捕获与分析 使用抓包工具(如Burp Suite)捕获加密请求 分析请求特征: 请求头中的加密标识 请求体的结构 参数命名规律 3.2 前端加密定位 使用浏览器开发者工具分析前端JavaScript 搜索关键词如"encrypt"、"decrypt"、"AES"、"RSA"等 定位加密函数入口点 3.3 加密算法逆向 使用Jsrpc Hook关键加密函数 记录函数输入输出 分析加密参数: 密钥来源 加密模式(如CBC、ECB) 填充方式 IV向量处理 3.4 数据包还原 使用autoDecoder配置解密参数 测试解密算法准确性 批量处理捕获的数据包 4. 漏洞挖掘技巧 还原明文后检查: 参数是否可遍历 ID是否可预测 是否存在越权可能 修改明文参数后重新加密测试: 金额篡改 ID替换 权限提升尝试 关注业务逻辑漏洞: 重复提交 并发请求 时序问题 5. 关键代码片段分析 根据评论中提到的代码片段: 这行代码获取的是加密后的数据体,需要进一步解密处理。解密流程可能包含: Base64解码 对称解密(如AES) 非对称解密(如RSA) 解压缩(如gzip) 6. 实战建议 加密顺序分析技巧: 从后向前逆向(先看最后一步是什么编码/加密) 查找密钥硬编码或动态获取逻辑 注意时间戳或随机数参与加密的情况 常见加密模式识别: AES: 固定块大小(16字节),可能有IV RSA: 长文本,使用公钥加密 自定义加密: 混合多种算法,需逐步分析 调试技巧: 使用console.log输出中间值 设置断点观察变量变化 对比多个请求分析加密模式 7. 总结 前端加密分析的关键在于: 准确定位加密函数 理解加密流程和参数 使用工具辅助解密 在明文状态下进行漏洞测试 通过这种方法,即使在高度加密的环境中,也能有效发现潜在的安全漏洞。