Burpsuite加解密插件Galaxy实战入门:从安装到首条解密请求 1. Galaxy插件初探为什么你需要这个加解密神器第一次听说Burpsuite的Galaxy插件时我也和大多数安全测试新手一样困惑Burpsuite本身已经很强大了为什么还需要这个插件直到去年参与某金融项目的安全测试面对层层加密的API请求我才真正体会到它的价值。Galaxy本质上是个自动化加解密中间件它能实时拦截并处理经过Burpsuite的加密流量。想象一下这样的场景你正在测试一个使用AESRSA双重加密的电商平台普通代理只能看到乱码般的请求体。而安装了Galaxy后这些加密数据会像被施了魔法一样在Burpsuite的各个模块中自动变成可读的明文。我整理了几个典型使用场景金融行业常见的动态加密接口测试移动端APP的签名校验绕过物联网设备加密通信分析前后端分离架构的API安全审计与同类插件相比Galaxy有三大杀手锏首先是算法库丰富内置AES、DES、RSA等常见算法的hook脚本其次是组合加密支持能处理多层嵌套的加密逻辑最重要的是全模块联动解密后的请求可以直接在Repeater、Intruder等模块中使用。2. 环境准备避开那些坑人的依赖问题2.1 JDK版本的选择陷阱第一次安装时我踩过最深的坑就是JDK版本问题。官方明确要求OpenJDK 17但很多人的开发环境还停留在JDK 8。这里有个血泪教训千万不要用Oracle JDK我测试过多个版本只有Amazon Corretto 21的兼容性最稳定。安装后需要检查两个关键位置系统环境变量JAVA_HOME必须指向新版本JDKBurpsuite启动脚本要显式指定JDK路径这是我的启动脚本配置Windows示例echo off start Burpsuite /B C:\corretto-21.0.4\bin\javaw.exe -Xmx4G -jar %~dp0burpsuite_community.jar2.2 Python环境配置技巧虽然Galaxy提供了集成Python环境的all-in-one包但我推荐使用without-jython版本本地Python3.9组合。这样既避免环境冲突又能利用本地已安装的第三方库。配置时要注意在Burpsuite的Python环境设置中指定python.exe路径确保已安装pycryptodome等常用加密库测试环境变量是否生效import sys print(sys.path)3. 插件安装实战从下载到激活3.1 获取插件的最佳姿势官方GitHub仓库提供了两种获取方式直接下载编译好的JAR包推荐新手从源码编译适合需要自定义功能的用户我建议首次使用时选择Galaxy-3.1.0-without-jython.jar文件大小仅15MB左右。下载完成后通过Burpsuite的Extender模块安装点击Add按钮选择JAR文件等待控制台输出加载成功的提示3.2 常见安装报错排查遇到过最棘手的问题是NoClassDefFoundError这通常是依赖冲突导致的。解决方法有删除Burpsuite目录下的旧版本插件检查是否同时加载了其他加解密插件尝试使用-Dloader.path参数指定依赖路径如果遇到Python相关错误可以尝试在burpsuite.properties中添加python.path/path/to/your/python/libs4. 第一个解密请求手把手实战演示4.1 配置基础解密规则让我们以最常见的AES-ECB加密为例。在Galaxy控制面板点击New Rule配置如下参数{ ruleName: Demo-AES, algorithm: AES, mode: ECB, key: 1234567890abcdef, iv: , target: requestBody, encoding: base64 }重点说明几个易错点ECB模式不需要IV参数密钥长度必须符合算法要求AES需16/24/32字节编码格式要与实际数据一致4.2 实时解密效果验证配置完成后用Postman发送加密请求到Burpsuite代理。正常情况下你会在Raw和Hex视图看到原始加密数据而在Galaxy Decoded标签页看到解密后的明文。有个实用技巧在Repeater模块发送解密请求时勾选Auto-decrypt选项这样响应也会自动解密。我常用这个功能测试加密接口的SQL注入漏洞。5. 进阶技巧让解密更高效5.1 动态密钥处理方案实际项目中更常见的是动态密钥场景Galaxy支持通过Python脚本实时计算密钥。比如处理时间戳加密的场景def get_key(param): import time ts int(time.time()) return fkey_{ts}.encode()在规则配置的Key字段填写python:get_key即可调用。5.2 组合加密的破解之道遇到RSAAES组合加密时可以创建级联规则先用RSA规则解密出AES密钥再用AES规则解密实际数据配置时注意勾选Chained Mode并设置正确的规则执行顺序。上周我刚刚用这个方法成功测试了某区块链平台的API接口。6. 调试与排错指南6.1 日志分析要领Galaxy的调试日志分为三个级别INFO常规操作记录DEBUG算法执行细节TRACE数据包字节级输出建议调试时先开DEBUG级别查看关键节点的数据处理情况。比如发现解密失败时可以检查是否成功捕获到目标请求密钥是否正确应用编码转换是否正常6.2 性能优化建议处理高并发流量时可以调整这些参数线程池大小默认10个线程缓存过期时间默认300秒批量处理阈值默认50个请求在测试电商秒杀接口时我将线程池扩大到50个后解密延迟从200ms降到了80ms左右。7. 安全测试实战案例去年在某银行项目中发现一个有趣的漏洞虽然接口使用了RSA加密但Galaxy的日志显示服务器实际上接受明文请求。通过这个发现我们最终绕过了前端加密验证直接通过Burpsuite发送未加密的恶意请求完成了越权测试。另一个典型案例是某IoT设备的管理接口。设备使用动态AES密钥但密钥生成算法写在客户端JavaScript里。用Galaxy的脚本注入功能我们成功还原了密钥生成逻辑进而实现了对固件升级包的篡改。这些实战经验告诉我再复杂的加密也抵不过配置疏忽。Galaxy的价值就在于它能帮我们快速验证各种加密实现是否存在逻辑缺陷。