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-3396 — Inyección de plantilla no autorizada en Confluence | Kitploit
Herramientas/GitHubGitHub/petrusviet/cve-2019-3396
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubpetrusviet/cve-2019-3396

cve-2019-3396

Inyección de plantilla no autorizada en Confluence

Ver Repositorio
219hace 5 añosAún no revisado

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

Inyección de plantilla no autorizada en Confluence (CVE-2019-3396)

I) Construcción

  • Este error ocurre en las versiones:
    • Todas las versiones 1.x.x, 2.x.x, 3.x.x, 4.x.x y 5.x.x
    • Todas las versiones 6.0.x, 6.1.x, 6.2.x, 6.3.x, 6.4.x y 6.5.x
    • Todas las versiones 6.6.x anteriores a 6.6.12
    • Todas las versiones 6.7.x, 6.8.x, 6.9.x, 6.10.x y 6.11.x
    • Todas las versiones 6.12.x anteriores a 6.12.3
    • Todas las versiones 6.13.x anteriores a 6.13.3
    • Todas las versiones 6.14.x anteriores a 6.14.2
  • Después de descargar el código fuente, necesitas:
    • Cambiar el valor de confluence.home a la ruta del home de Confluence en el archivo ./confluence/WEB-INF/classes/confluence-init.properties
    • Agregar el valor CATALINA_OPTS para que el programa pueda ejecutarse en modo de depuración remota

En Windows, archivo ./bin/setenv.bat

set CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

En Linux, archivo ./bin/setenv.sh

CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 ${CATALINA_OPTS}"  
  • En el IDE (Intellij) creamos una Configuración de Depuración: Remote JVM Debug con los valores host y port como localhost:5005 y Command line arguments for remote JVM
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
  • Podemos usar Postgresql como base de datos:
$ su - postgres
postgres@ubuntu:~$ psql -U postgres
postgres@ubuntu:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help.
 
postgres=# CREATE USER wiki WITH PASSWORD 'wiki';
CREATE ROLE
postgres=# CREATE DATABASE wiki OWNER wiki;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE jira TO wiki;
GRANT
  • Necesitamos añadir los siguientes jars: ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar, ./confluence/WEB-INF/lib/confluence-x.x.x.jar, ./confluence/WEB-INF/lib/velocity-x.x.x-atlassian-x.jar a la librería para que al depurar podamos ver el código fuente necesario.

  • Ejecutamos el archivo ./bin/start-confluence.bat y pueden consultar esta guía para instalar desde el código fuente.

II) Análisis

  • Después de leer la Descripción, podemos saber que este error comienza desde la función Widget Connector, así que busqué en Google inmediatamente para saber qué es esta función y cómo usarla:

    2 Editar una página

    3
    Seleccionar Other macros

    4 Seleccionar Widget connector

    image

  • Elegí parámetros al azar y presioné preview, luego fui a Burp para ver si había algo interesante. image

  • En este paquete, vi un parámetro "pluginKey":"com.atlassian.confluence.extra.widgetconnector", así que supuse que la función Widget Connector está definida en la clase com.atlassian.confluence.extra.widgetconnector, por lo que busqué en la ruta si había algún jar sospechoso.

image

  • Intenté añadir el archivo ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar a la librería del proyecto para poder leer el código fuente y depurar.

    1
    Cómo añadir archivo jar a la librería

  • Al abrir el paquete widgetconnector, sentí simpatía por la clase WidgetMacro, así que puse un breakpoint en el constructor y en la función execute de esta clase para ver si esta clase se invocaba al usar la función Preview 🕵️

    • image
    • La función execute fue llamada, luego el programa llama a DefaultRenderManager.getEmbeddedHtml
    • image
Descargar herramienta