Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2019-3396 — Неавторизованное внедрение шаблона в Confluence | Kitploit
Инструменты/GitHubGitHub/petrusviet/cve-2019-3396
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubpetrusviet/cve-2019-3396

cve-2019-3396

Неавторизованное внедрение шаблона в Confluence

Репозиторий
2125 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Неавторизованное внедрение шаблона в Confluence (CVE-2019-3396)

I) Сборка

  • Эта ошибка возникает в следующих версиях:
    • Все версии 1.x.x, 2.x.x, 3.x.x, 4.x.x и 5.x.x
    • Все версии 6.0.x, 6.1.x, 6.2.x, 6.3.x, 6.4.x и 6.5.x
    • Все версии 6.6.x до 6.6.12
    • Все версии 6.7.x, 6.8.x, 6.9.x, 6.10.x и 6.11.x
    • Все версии 6.12.x до 6.12.3
    • Все версии 6.13.x до 6.13.3
    • Все версии 6.14.x до 6.14.2
  • После загрузки исходников вам необходимо:
    • Изменить значение confluence.home на путь к домашней директории Confluence в файле ./confluence/WEB-INF/classes/confluence-init.properties
    • Добавить значение CATALINA_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}"  
  • В IDE (Intellij) создаем конфигурацию отладки: Remote JVM Debug с параметрами host и port localhost:5005 и Command line arguments for remote JVM
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
  • Можно использовать Postgresql в качестве базы данных:
$ 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; вы также можете ознакомиться с этим руководством для установки из исходников.

II) Анализ

  • Прочитав описание, мы можем понять, что эта ошибка начинается с функции Widget Connector, поэтому я сразу гуглю, что это за функция и как её использовать:

    2 входим в редактирование страницы

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

    4 Выбираем Widget connector

    image

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

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

image

  • Пробую добавить файл ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar в библиотеки проекта, чтобы можно было читать исходный код и отлаживать.

    1
    Как добавить jar-файл в библиотеки

  • Открыв пакет widgetconnector, я нахожу класс WidgetMacro, который вызывает интерес. Я ставлю точку останова в конструкторе и в функции execute этого класса, чтобы посмотреть, вызывается ли он при использовании функции Preview 🕵️

    • image
    • Функция execute была вызвана, затем программа обращается к DefaultRenderManager.getEmbeddedHtml
    • image
Скачать инструмент