
Injection de modèles non autorisée dans Confluence
confluence.home pour qu'elle pointe vers le répertoire de Confluence Home dans le fichier ./confluence/WEB-INF/classes/confluence-init.propertiesCATALINA_OPTS pour permettre au programme de fonctionner en mode débogage à distanceAvec Windows, fichier ./bin/setenv.bat
set CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Avec Linux, fichier ./bin/setenv.sh
CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 ${CATALINA_OPTS}"
Remote JVM Debug avec les valeurs host et port définies sur localhost:5005 et 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
Vous devez ajouter les 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 dans lib afin de pouvoir voir le code source nécessaire lors du débogage.
Lancez le fichier ./bin/start-confluence.bat et vous pouvez également consulter ce guide pour installer à partir du source.
Après avoir lu la description, on peut comprendre que ce bug provient de la fonctionnalité Widget Connector. J'ai donc cherché sur Google pour savoir ce qu'est cette fonctionnalité et comment l'utiliser :
pour éditer une page

Choisir Autres macros
Choisir Widget connector

J'ai choisi des paramètres au hasard puis cliqué sur Preview, avant de passer sur Burp pour voir si quelque chose d'intéressant s'y trouvait.

Dans ce paquet, j'ai vu un paramètre "pluginKey":"com.atlassian.confluence.extra.widgetconnector". J'ai donc supposé que la fonctionnalité Widget Connector est définie dans la classe com.atlassian.confluence.extra.widgetconnector et j'ai cherché dans le chemin pour voir s'il y avait un jar suspect.

J'ai essayé d'ajouter le fichier ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar dans lib du projet pour pouvoir lire le code source et déboguer.
Comment ajouter un fichier jar dans lib
En ouvrant le paquet widgetconnector, j'ai été attiré par la classe WidgetMacro. J'ai donc placé un point d'arrêt dans le constructeur et la fonction execute de cette classe pour voir si elle est appelée lorsque je fais un Preview 🕵️

execute est appelée, puis le programme appelle DefaultRenderManager.getEmbeddedHtml