Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-19634 — Esto es un exploit de bypass de filtros que resulta en la subida arbitraria de archivos y ejecución remota de código en class.upload.php <= 2.0.4 | Kitploit
Herramientas/GitHubGitHub/jra89/cve-2019-19634
Generación de PayloadsAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubjra89/cve-2019-19634

CVE-2019-19634

Esto es un exploit de bypass de filtros que resulta en la subida arbitraria de archivos y ejecución remota de código en class.upload.php <= 2.0.4

Ver Repositorio
368hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-19634 - class.upload.php <= 2.0.4 Subida de archivos arbitraria

  • Autor - Jinny Ramsmark
  • Proveedor afectado - Verot.net
  • Producto afectado - class.upload.php <= 2.0.4
  • Probado en Ubuntu 14.04 recién instalado con PHP5 y Apache
  • Específicamente, se ha encontrado que Debian/Ubuntu son vulnerables ya que añaden la extensión pht entre otras a los controladores PHP disponibles. En este caso, class.upload.php no ha incluido la extensión pht en la lista negra.
  • Este CVE está directamente relacionado con CVE-2019-19576

Descripción

Este es un exploit de omisión de filtros que resulta en la subida de archivos arbitraria y la ejecución remota de código. El script class.upload.php filtra "archivos y contenido peligrosos" y los renombra a la extensión de archivo txt. También realiza diferentes tipos de transformación en la imagen subida, lo que normalmente destruiría cualquier carga útil inyectada, incluso si se pudiera omitir el filtro de extensión de archivo.

El filtro de extensión de archivo es una lista negra, por lo que cada vez que se introduce una nueva extensión (en este caso pht), o si alguna ha sido omitida, se puede subir un archivo PHP. Sin embargo, el contenido debe seguir siendo una imagen válida y pasará por las funciones imagecreatefromjpeg y similares. Para este propósito escribí el script inject.php que básicamente probará por fuerza bruta diferentes imágenes hasta encontrar una donde la carga útil no sea destruida por el proceso realizado en class.upload.php. Esto nos da efectivamente una subida de archivos arbitraria y una ejecución de código muy sigilosa, ya que sigue siendo una imagen válida y se mostrará como tal en las páginas donde se suba.

El script inject.php será reescrito pronto para convertirse en una herramienta más general para este tipo de ataque, pero por ahora solo se incluirá como scripts individuales en este tipo de publicación de CVE.

Cronología (plazo predeterminado de 90 días)

  • 2019-12-07 - Reportado al desarrollador y a K2 de JoomlaWorks (ellos están afectados)
  • 2019-12-07 - El desarrollador respondió y ha lanzado un parche
  • 2019-12-08 - El desarrollador ha respondido y acordó publicar la información

Archivos incluidos en esta PoC

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

Uso

El script upload.php es el código de ejemplo del github de verot.net. Pensé que sería mejor demostrar esta vulnerabilidad usando su propio código de ejemplo.

  • Ejecute "php inject.php" en una terminal, generará una imagen de muestra con una carga útil simple en el archivo.
  • Cuando el script termine, producirá un archivo llamado "image.jpg.pht".
  • Navegue hasta el archivo upload.php y suba image.jpg.pht, pasará el proceso y ahora tendrá una shell.

Ejemplo

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.8=-
[+] Fetching image (100 X 100) from http://lorempixel.com/100/100/
[+] Jumping to end byte
[+] Searching for valid injection point
[!] Temp solution, if you get a 'recoverable parse error' here, it means it probably failed
[+] It seems like it worked!
[+] Result file: 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

Solución propuesta

  • No utilizar listas negras de extensiones de archivo.
  • En su lugar, usar una lista blanca de extensiones permitidas por defecto.
  • O simplemente no tener ninguna extensión en los archivos subidos, y almacenar el nombre original en otro lugar.

Referencia

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