
Inyección de plantilla no autorizada en Confluence
confluence.home a la ruta del home de Confluence en el archivo ./confluence/WEB-INF/classes/confluence-init.propertiesCATALINA_OPTS para que el programa pueda ejecutarse en modo de depuración remotaEn 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}"
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
$ 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.
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:
Editar una página

Seleccionar Other macros
Seleccionar Widget connector

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

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.

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.
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 🕵️

execute fue llamada, luego el programa llama a DefaultRenderManager.getEmbeddedHtml