burp插件之Padding Oracle Hunter

burp插件之Padding Oracle Hunter

Padding Oracle Hunter简介

Padding Oracle Hunter 是一个 Burp Suite 扩展,可帮助渗透测试人员快速识别和利用 PKCS#7 和 PKCS#1 v1.5 填充 oracle 漏洞。

特征

目前,该扩展由 2 个单独的选项卡PKCS#7PKCS#1 v1.5组成,它们支持以下功能:

PKCS#7

以下 GUI 可用于识别和执行针对 CBC 块密码的 PKCS#7 填充方案的填充预言攻击。该攻击允许在不知道密钥的情况下恢复和修改明文

burp插件之Padding Oracle Hunter

GUI(上图)的组件如下:

  1. Http 请求窗口。
  2. 用于选择有效负载及其格式的面板。为实现全解密,payload预计为IV || 密文。
  3. 用于执行攻击的线程数。有了更多的线程,计算预计会更快。
  4. 加密协议的块大小。
  5. 由于无效填充而来自服务器的响应(部分或全部)。仅用于加密和解密操作。
  6. 将用于计算密文的明文。仅用于加密操作。
  7. 输出窗口。
  8. 用于验证服务器是否容易受到 PKCS#7 padding oracle 攻击的测试功能。
  9. 加密函数从给定的明文计算密文。
  10. 解密函数从加密的有效载荷中恢复明文。
  11. 停止功能可停止所有当前操作。

PKCS#1 v1.5

以下 GUI 可用于识别和执行针对 RSA Cryptosystem 上的 PKCS#1 v1.5 填充方案的填充预言攻击。该攻击允许仅使用公钥信息恢复明文。

burp插件之Padding Oracle Hunter

GUI(上图)的组件如下:

  1. Http 请求窗口。
  2. 用于选择有效负载及其格式的面板。
  3. RSA 公共指数。
  4. RSA 公共模数。
  5. 由于无效填充而来自服务器的响应(部分或全部)。仅用于解密操作。
  6. 显示测试和解密结果的时间间隔。
  7. 输出窗口。
  8. 用于验证服务器是否容易受到 PKCS#1 v1.5 padding oracle 攻击的测试功能。
  9. 解密函数从加密的有效载荷中恢复明文。
  10. 停止功能可停止所有当前操作。

先决条件

安装

burpsuite

  • 克隆此存储库。
  • 在 Burp 中,选择Extender -> Options -> Python Environment -> Select File -> 选择 Jython 独立 JAR 文件
  • 从 Burp 中,选择Extender -> Extensions -> Add -> 选择 Extension type: Python and Extension file: padding_oracle_hunter.py
  • 单击下一步并确保安装完成且没有错误。如果一切顺利,会在 Burp 中创建Padding Oracle Hunter选项卡。

测试易受攻击的服务器

  • 创建了一个测试服务器来模拟填充预言机漏洞。
  • 要设置服务器,请克隆此存储库 -> 进入 TestVulServer 目录 -> 运行 docker-compose up
  • 服务器可以通过http://ServerIP:8000访问
burp插件之Padding Oracle Hunter

用法

PKCS#7

  1. 使用以下POST请求转到位于http://ServerIP:8000/TestAesPKCS7的测试服务器端点,并注意我们以普通用户身份登录。
burp插件之Padding Oracle Hunter

2.通过Extensions -> Padding Oracle Hunter -> PKCS#7传递请求

burp插件之Padding Oracle Hunter

3.在Request窗口中选择密文值,点击Select Payload with Hex format,Url Encoded uncheck。有效载荷将包含在§符号中。

4.单击测试按钮,它将提供一个摘要,表明服务器容易受到填充预言攻击。

burp插件之Padding Oracle Hunter

5.从输出窗口复制无效填充响应的任一部分/全部并将其放入无效填充响应文本框中,单击解密按钮以恢复明文。

burp插件之Padding Oracle Hunter

6.为了将权限提升到管理员,我们需要将明文修改为{“userid”:”100″,”isAdmin”:”True”}并将其转换为十六进制值

burp插件之Padding Oracle Hunter

7.将十六进制值复制到明文文本框中,然后单击加密按钮以计算相应的密文。

burp插件之Padding Oracle Hunter

8.使用新计算的密文更新 http 请求并将请求发送到服务器。请注意,我们现在以管理员身份登录。

burp插件之Padding Oracle Hunter

PKCS#1 v1.5

  1. 使用以下POST请求 转到位于http://ServerIP:8000/TestRsaPKCS1_5的测试服务器端点。
burp插件之Padding Oracle Hunter

2.通过Extensions -> Padding Oracle Hunter -> PKCS#1 v1.5传递请求

burp插件之Padding Oracle Hunter

3.在Request窗口中选择密文值,点击Select Payload with Hex format,Url Encoded uncheck。有效载荷将包含在§符号中。

4.public exponent: 65537用和填写公钥参数modulus: 91150209829916536965146520317827566881182630249923637533035630164622161072289

5.单击测试按钮,它将提供一个摘要,表明服务器容易受到填充预言攻击。

burp插件之Padding Oracle Hunter

6.从输出窗口复制无效填充响应的任一部分/全部,并将其放入无效填充响应文本框中。点击Decrypt按钮,大约 50k 请求时将恢复明文。

burp插件之Padding Oracle Hunter

项目地址:

GitHub:https://github.com/GovTech-CSG/PaddingOracleHunter

插件下载地址:

padding_oracle_hunter.py

解压密码:www.ddosi.org

https://yzzpan.com/#sharefile=KON3PfV6_37076

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。