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-2022-1565 — Exploit de execução remota de código autenticado para o plugin WordPress WP All Import <= 3.6.7 (CVE-2022-1565). Envia arquivos arbitrários através de validação insegura de tipo de arquivo em wp_all_import_get_gz.php. | Kitploit
Ferramentas/GitHubGitHub/phanthibichtram12/cve-2022-1565
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubphanthibichtram12/cve-2022-1565

CVE-2022-1565

Exploit de execução remota de código autenticado para o plugin WordPress WP All Import <= 3.6.7 (CVE-2022-1565). Envia arquivos arbitrários através de validação insegura de tipo de arquivo em wp_all_import_get_gz.php.

Ver Repositório
3há 2 anosAinda 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

WordPress Plugin WP All Import <= 3.6.7 - Execução Remota de Código (RCE) (Autenticado)

root@kitploit:~
Data: 05 de novembro de 2023
Autor do exploit: Việt HÙng (https://github.com/phanthibichtram12)
Site do fornecedor: https://www.wpallimport.com/
Link do software: https://wordpress.org/plugins/wp-all-import/advanced/ (role para baixo e selecione a versão)
Versão: <= 3.6.7 (testado: 3.6.7)
Testado em: WordPress 6.1 (independente do sistema operacional, pois este exploit NÃO fornece payload)
CVE: CVE-2022-1565

DESCRIÇÃO DA VULNERABILIDADE

O plugin WP All Import é vulnerável a upload arbitrário de arquivos devido à falta de validação de tipo de arquivo por meio do arquivo wp_all_import_get_gz.php nas versões até 3.6.7 inclusive. Isso permite que atacantes autenticados com nível de administrador ou superior façam upload de arquivos arbitrários para o servidor do site afetado, o que pode levar à execução remota de código.

COMO O EXPLOIT FUNCIONA

1. Preparar o arquivo zip:

  • crie um arquivo PHP com seu payload (ex: shell reverso)
  • defina a variável "payload_file_name" com o nome deste arquivo (ex: "shell.php")
  • crie um arquivo zip com o payload
  • defina a variável "zip_file_to_upload" com o CAMINHO deste arquivo (ex: "/root/shell.zip")

2. Faça login com uma conta de administrador:

  • defina a variável "target_url" com a URL base do alvo (NÃO termine a string com barra /)
  • defina a variável "admin_user" com o nome de usuário da conta de administrador
  • defina a variável "admin_pass" com a senha da conta de administrador

3. Obtenha o wpnonce usando o método get_wpnonce_upload_file()

  • na verdade, existem 2 tipos de wpnonce:
  • o primeiro wpnonce será recuperado pelo método get_wpnonce_edit_settings() dentro da classe PluginSetting. Este wpnonce nos permite alterar as configurações do plugin (veja passo 4)
  • o segundo wpnonce será recuperado pelo método get_wpnonce_upload_file() dentro da classe PluginSetting. Este wpnonce nos permite fazer upload de arquivos

4. Verifique se o modo de segurança do plugin está ativado usando o método check_if_secure_mode_is_enabled() dentro da classe PluginSetting

  • se o Modo de Segurança estiver ativado, o conteúdo do zip será colocado em uma pasta com nome aleatório. O exploit desativará o Modo de Segurança. Ao desativar o Modo de Segurança, o conteúdo do zip será colocado na pasta principal (veja a variável payload_url). O método chamado para ativar e desativar o Modo de Segurança é set_plugin_secure_mode(set_to_enabled:bool, wpnonce:str)
  • se o Modo de Segurança NÃO estiver ativado, o exploit fará o upload do arquivo, mas NÃO ativará o Modo de Segurança depois.

5. Faça upload do arquivo usando o método upload_file(wpnonce_upload_file: str)

  • após o upload, o servidor responderá com HTTP 200 OK, mas isso não significa que o upload foi concluído com sucesso. A resposta conterá JSON parecido com isto: {"jsonrpc":"2.0","error":{"code":102,"message":"Por favor, verifique se o arquivo enviado é um arquivo ZIP válido."},"is_valid":false,"id":"identificador"} Como você pode ver, ele informa que houve um erro com código 102, mas pelos testes que realizei, o upload foi concluído

6. Reative o Modo de Segurança se ele estava ativado usando o método switch_back_to_secure_mode()

7. Ative o payload usando o método activate_payload()

  • você pode definir o método para ativar o payload. A razão por trás dessa escolha é que este exploit NÃO fornece nenhum payload. Como você pode usar um payload personalizado, talvez queira ativá-lo com uma requisição HTTP POST em vez de uma requisição HTTP GET, ou talvez queira passar parâmetros

POR QUE O EXPLOIT DESATIVA O MODO DE SEGURANÇA?

De acordo com o PoC desta vulnerabilidade fornecido pela WPSCAN, podemos recuperar os arquivos enviados acessando a "página de Importações Gerenciadas". Não sei por quê, mas após enviar qualquer arquivo, não consegui ver o arquivo enviado nessa página (talvez seja necessária a versão Pro?). Tive que encontrar uma alternativa e consegui explorando esta opção.

Página WPSCAN: https://wpscan.com/vulnerability/578093db-a025-4148-8c4b-ec2df31743f7

ATUALIZAÇÃO em 06 de novembro de 2022

Durante os testes, percebi que estava enviando um arquivo XML inválido e era por isso que ele não aparecia na "página de Importações Gerenciadas"

De qualquer forma, esta forma de desativar o modo de segurança é um pouco mais "furtiva" porque o conteúdo enviado não aparece na página de administração. Se você quiser ver o upload na página de administração, serão necessários mais passos.

ALGUM PROBLEMA AO EXPLORAR?

Para que o exploit seja eficaz, considere o seguinte:

  1. verifique a target_url e as credenciais do administrador
  2. verifique o caminho do arquivo zip e o nome do payload (eles podem ser diferentes)
  3. se estiver testando localmente, tente definir verify_ssl_certificate como False
  4. você pode usar print_response(http_response) para investigar mais
Baixar ferramenta