Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
padding-oracle-attacker — 🔓 パディングオラクル攻撃を簡単に実行するためのCLIツールおよびライブラリ。同時ネットワークリクエストのサポートとエレガントなUIを備えています。 | Kitploit
ツール/GitHubGitHub/kishanbagaria/padding-oracle-attacker
暗号化/復号化ツールエクスプロイトウェブアプリケーション悪用暗号化
GitHubkishanbagaria/padding-oracle-attacker

padding-oracle-attacker

🔓 パディングオラクル攻撃を簡単に実行するためのCLIツールおよびライブラリ。同時ネットワークリクエストのサポートとエレガントなUIを備えています。

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
216324年前Kitploit レビュー済み

padding-oracle-attacker

CLIツールとライブラリで、パディングオラクル攻撃を簡単に実行できます。同時ネットワークリクエストをサポートし、洗練されたUIを備えています。

poattack decrypt demo

Build Status

インストール

Node.jsがインストールされていることを確認し、次に以下のコマンドを実行してください。

root@kitploit:~
$ npm install --global padding-oracle-attacker

または

root@kitploit:~
$ yarn global add padding-oracle-attacker

CLIの使い方

root@kitploit:~
使い方
  $ padding-oracle-attacker decrypt <url> hex:<ciphertext_hex> <block_size> <error> [options]
  $ padding-oracle-attacker decrypt <url> b64:<ciphertext_b64> <block_size> <error> [options]

  $ padding-oracle-attacker encrypt <url> <plaintext>          <block_size> <error> [options]
  $ padding-oracle-attacker encrypt <url> hex:<plaintext_hex>  <block_size> <error> [options]

  $ padding-oracle-attacker analyze <url> [<block_size>] [options]

コマンド
  decrypt                  指定された暗号文(hex:0123abcd)に対応する平文(foobar)を探します
  encrypt                  指定された平文(foo=bar)に対応する暗号文(hex:abcd1234)を探します
  analyze                  URLが脆弱かどうか、また復号エラー発生時にレスポンスがどのように異なるかを調べるのに役立ちます
                           (<error>引数用)

引数
  <url>                    攻撃対象のURL。デフォルトではペイロードが末尾に挿入されます。
                           カスタム注入ポイントを指定するには、ヘッダー(-H)、リクエストボディ(-d)、またはURLに {POPAYLOAD} を含めてください。
  <block_size>             サーバー上の暗号化アルゴリズムで使用されるブロックサイズ
  <error>                  サーバーで復号に失敗した場合のレスポンスに含まれる文字列。
                            HTTPレスポンスボディに含まれる文字列(PaddingExceptionなど)、またはHTTPレスポンスのステータスコード(400など)を指定します。

オプション
  -c, --concurrency        同時に送信するリクエスト数                      [デフォルト: 128]
      --disable-cache       ネットワークキャッシュを無効化。デフォルトでは             [デフォルト: false]
                            poattack-cache.json.gz.txt に保存されます。
  -X, --method             リクエストに使用するHTTPメソッド                [デフォルト: GET]
  -H, --header             リクエストと共に送信するヘッダー。
                             -H 'Cookie: cookie1' -H 'User-Agent: Googlebot/2.1'
  -d, --data               リクエストボディ
                             JSON文字列: {"id": 101, "foo": "bar"}
                             URLエンコード: id=101&foo=bar
                            Content-Type ヘッダーを必ず指定してください。

  -e, --payload-encoding   {POPAYLOAD} 用の暗号文ペイロードエンコーディング  [デフォルト: hex]
                             base64          FooBar+/=
                             base64-urlsafe  FooBar-_
                             hex             deadbeef
                             hex-uppercase   DEADBEEF
                             base64(xyz)     カスタムbase64('xyz' は '+/=' の文字を表す)

  --dont-urlencode-payload  {POPAYLOAD} をURLエンコードしない               [デフォルト: false]

  --start-from-1st-block    最後のブロックではなく最初のブロックから処理を開始 [デフォルト: false]
                           (decryptモードでのみ機能)

例
  $ poattack decrypt http://localhost:2020/decrypt?ciphertext=
      hex:e3e70d8599206647dbc96952aaa209d75b4e3c494842aa1aa8931f51505df2a8a184e99501914312e2c50320835404e9
      16 400
  $ poattack encrypt http://localhost:2020/decrypt?ciphertext= "foo bar 🦄" 16 400
  $ poattack encrypt http://localhost:2020/decrypt?ciphertext= hex:666f6f2062617220f09fa684 16 400
  $ poattack analyze http://localhost:2020/decrypt?ciphertext=

エイリアス
  poattack
  padding-oracle-attack

ライブラリAPI

root@kitploit:~
const { decrypt, encrypt } = require('padding-oracle-attacker')
// または
import { decrypt, encrypt } from 'padding-oracle-attacker'

const { blockCount, totalSize, foundBytes, interBytes } = await decrypt(options)

const { blockCount, totalSize, foundBytes, interBytes, finalRequest } = await encrypt(options)

decrypt(options: Object): Promise

encrypt(options: Object): Promise

必須オプション
url: string

攻撃対象のURL。デフォルトではペイロードが末尾に追加されます。カスタム注入ポイントを指定するには、URL、ヘッダー(requestOptions.headers)、またはリクエストボディ(requestOptions.data)に {POPAYLOAD} を含めてください。

blockSize: number

サーバー上の暗号化アルゴリズムで使用されるブロックサイズ。

isDecryptionSuccess: ({ statusCode, headers, body }) => boolean

サーバーのレスポンスが復号成功を示す場合に true を返す関数。

ciphertext: Buffer(decrypt のみ)

復号する暗号文。

plaintext: Buffer(encrypt のみ)

暗号化する平文。パディングは自動的に追加されます。例: Buffer.from('foo bar', 'utf8')


オプションオプション
concurrency: number = 128

同時に送信するネットワークリクエスト数。

isCacheEnabled: boolean = true

デフォルトでレスポンスがキャッシュされ、poattack-cache.json.gz.txt に保存されます。キャッシュを無効にするには false に設定してください。

requestOptions: { method, headers, data }
requestOptions.method: string

リクエストに使用するHTTPメソッド。デフォルトは GET。POST、PUT、DELETE なども有効です。

requestOptions.headers: { string: string }

リクエストと共に送信するヘッダー。例: { 'Content-Type': 'application/x-www-form-urlencoded' }

requestOptions.body: string

リクエストボディ。JSON文字列、URLエンコードされたパラメータなどが指定できます。Content-Type ヘッダーは手動で設定する必要があります。

logMode: 'full'|'minimal'|'none' = 'full'

full: すべてをコンソールに出力(デフォルト)
minimal: 開始と完了のみコンソールに出力
none: コンソールに何も出力しない

transformPayload: (ciphertext: Buffer) => string

リクエスト時に ciphertext を文字列に変換する関数。デフォルトでは、ciphertext が16進数でエンコードされ、注入ポイント({POPAYLOAD} がない場合はURL末尾)に挿入されます。


オプションオプション(decrypt のみ)
alreadyFound: Buffer

すでにわかっている(見つかった)平文バイトで、末尾からスキップできます。10バイトの Buffer を指定すると、最後の10バイトがスキップされます。

initFirstPayloadBlockWithOrigBytes: boolean = false

最初のペイロードブロックをゼロではなく元の ciphertext バイトで初期化します。
例: abcdef12345678ff 1111111111111111 の代わりに 00000000000000ff 1111111111111111

startFromFirstBlock: boolean = false

最後のブロックではなく最初のブロックから処理を開始します。

makeInitialRequest: boolean = true

指定された元の ciphertext で最初のリクエストを行い、サーバーのレスポンスをコンソールに記録して、ネットワークリクエストが正しく送信されていることを確認できるようにします。


オプションオプション(encrypt のみ)
makeFinalRequest: boolean = true

新しい plaintext 用の ciphertext バイトを見つけた後、見つかったバイトで最終リクエストを行い、サーバーのレスポンスをコンソールに記録します。

lastCiphertextBlock: Buffer

最後のブロック用のカスタム暗号文。デフォルトでは最後のブロックはゼロ(000000000000000)です。

開発

padding-oracle-attacker はTypeScriptで書かれています。ソースファイルを変更して実行したい場合は、まずファイルをJSにコンパイルしてからnodeで実行するか、ts-nodeを使用してください。
例: yarn build を実行してから node dist/cli ... または ts-node src/cli ... を実行します。

yarn build または npm run build

src ディレクトリ内のTypeScriptファイルをJSファイルにビルドし、dist ディレクトリに出力します。

yarn clean または npm run clean

dist ディレクトリを削除します。

yarn lint または npm run lint

eslintを使用してファイルをリントします。

yarn test または npm run test

リントを実行し、avaを使用してテストを実行します。

node test/helpers/vulnerable-server.js

http://localhost:2020 でパディングオラクル攻撃に対して脆弱なテストサーバーを実行します。

関連

  • PadBuster (Perl)
  • Padding Oracle Attack (Python)
  • python-paddingoracle (Python)
  • Poracle (Ruby)
  • GoPaddy (Go)
  • pax (Go)
  • padre (Go)
  • Padantic (Rust)
  • Padoracle (JavaScript)

ライセンス

MIT © Kishan Bagaria

ツールをダウンロード