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-2019-19634 — Este é um exploit de bypass de filtro que resulta em upload arbitrário de arquivos e execução remota de código no class.upload.php <= 2.0.4 | Kitploit
Ferramentas/GitHubGitHub/jra89/cve-2019-19634
Geração de PayloadsAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubjra89/cve-2019-19634

CVE-2019-19634

Este é um exploit de bypass de filtro que resulta em upload arbitrário de arquivos e execução remota de código no class.upload.php <= 2.0.4

Ver Repositório
368há 6 anosRevisado pelo Kitploit

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-2019-19634 - class.upload.php <= 2.0.4 Upload arbitrário de arquivos

  • Autor - Jinny Ramsmark
  • Fornecedor afetado - Verot.net
  • Produto afetado - class.upload.php <= 2.0.4
  • Testado em Ubuntu 14.04 recém‑instalado com PHP5 e Apache
  • Especificamente Debian/Ubuntu foram considerados vulneráveis pois adicionam a extensão pht entre outras aos manipuladores PHP disponíveis. Neste caso, class.upload.php não colocou a extensão pht na lista negra.
  • Este CVE está diretamente relacionado ao CVE-2019-19576

Descrição

Este é um exploit de bypass de filtro que resulta em upload arbitrário de arquivos e execução remota de código. O script class.upload.php filtra "arquivos e conteúdos perigosos" e os renomeia para a extensão de arquivo txt. Ele também faz diferentes tipos de transformação na imagem enviada, o que normalmente destruiria qualquer payload injetado, mesmo que o filtro de extensão de arquivo pudesse ser contornado.

O filtro de extensão de arquivo é uma lista negra, portanto, sempre que uma nova extensão é introduzida (neste caso pht), ou alguma foi esquecida, um arquivo PHP pode ser enviado. O conteúdo ainda deve ser uma imagem válida, porém, e passará pelas funções imagecreatefromjpeg e similares. Para esse propósito, escrevi o script inject.php que essencialmente fará força bruta em diferentes imagens até encontrar uma onde o payload não seja destruído pelo processo realizado em class.upload.php. Isso nos dá efetivamente um upload arbitrário de arquivos e uma execução de código muito furtiva, pois ainda é uma imagem válida e será exibida como tal nas páginas onde foi enviada.

O script inject.php será reescrito em breve para se tornar uma ferramenta mais geral para esse tipo de ataque, mas por enquanto será incluído apenas como scripts individuais neste tipo de lançamento de CVE.

Cronograma (prazo padrão de 90 dias)

  • 2019-12-07 - Reportado ao desenvolvedor e ao K2 da JoomlaWorks (eles são afetados)
  • 2019-12-07 - O desenvolvedor respondeu e lançou um patch
  • 2019-12-08 - O desenvolvedor respondeu e concordou em divulgar as informações

Arquivos incluídos neste PoC

  • composer.json
  • upload.php
  • inject.php

Uso

O script upload.php é o código de exemplo do github da verot.net. Achei que seria melhor demonstrar esta vulnerabilidade usando o próprio código de exemplo deles.

  • Execute "php inject.php" em um terminal; ele gerará uma imagem de exemplo com um payload simples no arquivo.
  • Quando o script terminar, ele produzirá um arquivo chamado "image.jpg.pht".
  • Navegue até o arquivo upload.php e faça upload de image.jpg.pht; ele passará pelo processo e você terá um shell.

Exemplo

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.8=-
[+] Obtendo imagem (100 X 100) de http://lorempixel.com/100/100/
[+] Pulando para o byte final
[+] Procurando ponto de injeção válido
[!] Solução temporária: se você obtiver um 'erro de análise recuperável' aqui, significa que provavelmente falhou
[+] Parece que funcionou!
[+] Arquivo resultante: image.jpg.pht
root@kitploit:~
user@ayu:/var/www/html# curl -v -o - http://localhost/images/image_resized.phar?c=uname%20-a | grep -aPo "(Linux.*GNU)"
Linux ayu 5.0.0-36-generic #39-Ubuntu SMP Tue Nov 12 09:46:06 UTC 2019 x86_64 x86_64 x86_64 GNU

Solução proposta

  • Não use lista negra de extensões de arquivo.
  • Use uma lista branca de extensões permitidas por padrão.
  • Ou simplesmente não tenha nenhuma extensão nos arquivos enviados e armazene o nome original em outro lugar.

Referência

  • https://github.com/verot/class.upload.php/blob/2.0.5/src/class.upload.php#L3068
Baixar ferramenta