Burpsuite 插件,用于实时解密 AES 加密的流量
IProxyListener 解密请求并加密响应,IHttpListener 加密请求并解密响应。注意: 当前支持 AES/CBC/PKCS5Padding 和 AES/ECB/PKCS5Padding 加密/解密。
$ git clone https://github.com/Ebryx/AES-Killer/
$ cd AES-Killer
$ ./gradlew clean build
AES_Killer-Parameters.java: 假设应用对请求中的少数参数进行加密,并且这些参数会随端点/请求而变,您只需按如下操作:
- 通过在 `registerExtenderCallbacks` 函数中添加 this.endpoints.add("abc"); 来添加端点
- 在 `String[][] parameters` 中添加需要加密的参数
- 在 grant_type 中添加其余参数,或留空
然后让代码为您完成魔法。
AES_Killer_v3.0.java: 此变体是通用的,可以处理任何类型的请求格式,即 GET、POST(表单、JSON),并支持不同端点上的交替参数。
- 克隆项目,将 `BurpExtender.java` 替换为 `AES_Killer_v3.0.java` 代码 - 按如下所示修改每个请求类型的端点和参数顺序 - 更新 SecretKey 和 IV 参数以及其他所需方法 - 构建项目,即可使用
AES_Killer_v4.0.java: 此变体用于多级加密,即应用使用一个密钥加密部分请求参数,然后使用另一个密钥加密整个请求体。
- 克隆项目,将 `BurpExtender.java` 替换为 `AES_Killer_v4.0.java` 代码 - 按如下所示修改端点和参数 - 更新密钥和其他所需方法 - 构建项目,将 jar 文件添加到您的 extender
注意: 由于请求的特性,这些变体可能无法直接为您工作,可能需要稍作调整。
从 Release 下载 jar 文件并添加到 burpsuite
Secret Key 字段中提供 SecretSpecKeyInitialize Vector 字段中提供 IVStart AES Killer
启动 AES Killer 后,它将接管 Burp 的 IHttpListener.processHttpMessage,该接口负责处理所有出站和入站流量。AES Killer 执行以下操作:
ProcessHttpMessage 会加密请求ProcessHttpMessage 会先解密响应,然后再显示给我们因此,我们只会收到明文响应,并且可以操作明文请求。
我们还可以使用 AES Killer 手动加密和解密字符串。例如,从请求中取出一个加密字符串 TYROd49FWJjYBfv02oiUzwRQgxWMWiw4W3oCqvNf8h3bnb7X0bobypFzMt797CYU,并使用 AES Killer 解密。同样,我们也可以执行加密操作。
从 此处 下载演示应用