
Неавторизованное внедрение шаблона в Confluence
confluence.home на путь к домашней директории Confluence в файле ./confluence/WEB-INF/classes/confluence-init.propertiesCATALINA_OPTS для возможности удаленной отладки программыДля Windows, файл ./bin/setenv.bat
set CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
для Linux, файл ./bin/setenv.sh
CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 ${CATALINA_OPTS}"
Remote JVM Debug с параметрами host и port localhost:5005 и 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
Необходимо добавить jar-файлы: ./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 в библиотеки, чтобы при отладке можно было видеть нужный исходный код.
Запускаем файл ./bin/start-confluence.bat; вы также можете ознакомиться с этим руководством для установки из исходников.
Прочитав описание, мы можем понять, что эта ошибка начинается с функции Widget Connector, поэтому я сразу гуглю, что это за функция и как её использовать:
входим в редактирование страницы

Выбираем Другие макросы
Выбираем Widget connector

Я произвольно выбираю параметры и нажимаю предварительный просмотр, после чего переключаюсь на Burp, чтобы посмотреть, нет ли чего интересного.

В этом пакете я вижу параметр "pluginKey":"com.atlassian.confluence.extra.widgetconnector", поэтому предполагаю, что функция Widget Connector определена в классе com.atlassian.confluence.extra.widgetconnector. Я начинаю искать в путях, нет ли подозрительного jar-пакета.

Пробую добавить файл ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar в библиотеки проекта, чтобы можно было читать исходный код и отлаживать.
Как добавить jar-файл в библиотеки
Открыв пакет widgetconnector, я нахожу класс WidgetMacro, который вызывает интерес. Я ставлю точку останова в конструкторе и в функции execute этого класса, чтобы посмотреть, вызывается ли он при использовании функции Preview 🕵️

execute была вызвана, затем программа обращается к DefaultRenderManager.getEmbeddedHtml