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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-22515 — Пошаговое руководство по эксплуатации уязвимости CVE-2023-22515, критической уязвимости нарушения контроля доступа в Atlassian Confluence Server и Data Center, позволяющей удаленно создавать учетные записи администратора. | Kitploit
Инструменты/GitHubGitHub/tranphuc2005/cve-2023-22515
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubtranphuc2005/cve-2023-22515

CVE-2023-22515

Пошаговое руководство по эксплуатации уязвимости CVE-2023-22515, критической уязвимости нарушения контроля доступа в Atlassian Confluence Server и Data Center, позволяющей удаленно создавать учетные записи администратора.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
11 месяцев назадЕщё не проверено

CVE-2023-22515

Основная информация о CVE-2023-22515

  • Затронутые продукты: Atlassian Confluence Data Center & Confluence Server.
  • Дата публикации: 04/10/2023.
  • Уровень: Critical (CVSS ~ 10.0).
  • Тип уязвимости: Broken Access Control / Improper Authorization → позволяет атакующему создать учетную запись администратора удаленно.
  • Ошибка находится в механизме настройки Confluence
  • Влияние: Confluence Data Center & Server 8.0.0 → 8.5.1.

Реализация поиска уязвимости

  • Сначала при установке Confluence есть шаг настройки сервера, например, подключение к БД, создание пользователя и т.д. Эти действия выполняются через веб-браузер по адресам URL /setup/. Последним шагом настройки будет /setup/setupadministrator.action.
  • После завершения эти настройки не вызываются. Если мы попытаемся вызвать их, то получим сообщение об ошибке.

1

  • Это исходит от одного из перехватчиков — SetupCheckInterceptor в struts.xml

  • struts.xml — это центральный файл конфигурации для Struts.

  • Он определяет, как Confluence сопоставляет URL → класс Action → шаблон представления.

  • А также объявляет перехватчики (классы, которые обрабатывают запрос до/после выполнения действия).

1

В SetupCheckInterceptor вызывается BootstrapUtils.getBootstrapManager().isSetupComplete()

root@kitploit:~
public String intercept(ActionInvocation actionInvocation) throws Exception {
    if (BootstrapUtils.getBootstrapManager().isSetupComplete() && ContainerManager.isContainerSetup())
        return "alreadysetup"; 
    return actionInvocation.invoke();
}

Объяснение

  • BootstrapUtils.getBootstrapManager().isSetupComplete()
    → Проверяет, завершил ли Confluence процесс настройки (через мастер, ввод лицензии, создание пользователя-администратора).
  • ContainerManager.isContainerSetup()
    → Проверяет, полностью ли инициализирован контейнер Spring IoC.
  • Если оба условия истинны:
    → Это означает, что система полностью настроена → перехватчик немедленно возвращает "alreadysetup".
    → Не позволяет выполнить действие (обычно это действия настройки, такие как SetupDatabaseAction, SetupLicenseAction и т.д.).
  • Если настройка не завершена:
    → Вызывается actionInvocation.invoke() — то есть продолжается выполнение запрошенного пользователем действия.

getBootstrapManager() → обычно возвращает DefaultAtlassianBootstrapManager, который управляет всей основной информацией конфигурации во время настройки.

  • В DefaultAtlassianBootstrapManager.isSetupComplete мы видим, что вызывается метод конфигурации приложения isSetupComplete, чтобы проверить, завершена ли настройка.

1

=> Если мы сделаем isSetupComplete = False, то SetupCheckInterceptor не вернет “alreadysetup”, и /setup/setupadministrator.action станет доступен.

Ниже у нас есть ServerInfoAction

  • ServerInfoAction = публичное действие в Confluence → позволяет любому пользователю вызвать его без входа в систему и без CSRF-токена. При выполнении оно возвращает "success" → сопоставляется с шаблоном, отображающим информацию о сервере.

1

  • Он наследуется от ConfluenceActionSupport

  • В ConfluenceActionSupport мы видим, что getBootstrapStatusProvider возвращает BootstrapStatusProviderImpl — экземпляр, который мы ищем.

1

  • В BootstrapStatusProviderImpl есть метод getApplicationConfig, который возвращает конфигурацию приложения.

1

  • Наконец, внутри ApplicationConfig видно, что он реализует проверку setSetupComplete.

1

  • Объединяя вышесказанное, мы можем вывести цепочку методов для установки setSetupComplete = false
root@kitploit:~
getBootstrapStatusProvider(). getApplicationConfig (). setSetupComplete ( false );

XWorks2 позволяет нам выполнять такую цепочку геттеров/сеттеров, и мы можем сконструировать HTTP-параметр для реализации этой цепочки вызовов методов, используя нотацию, требуемую XWorks2.

root@kitploit:~
bootstrapStatusProvider.applicationConfig.setupComplete=false

Мы воспользуемся /server-info.action — это URL в Confluence, обрабатываемый ServerInfoAction, так как это публичная конечная точка, не требующая входа в систему.

root@kitploit:~
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

1

Давайте проверим отладку:

  • setupComplete (параметр, передаваемый в метод)
    → false
    То есть метод вызывается с параметром false.
  • this.setupComplete (переменная экземпляра объекта ApplicationConfig)
    → true (перед присваиванием).
  • После выполнения команды → this.setupComplete станет false.

1

  • После завершения вышеуказанного шага давайте попробуем снова зайти на эндпоинт /setup/setupadministrator.action — успех.

1

  • После создания войдите в систему и проверьте права.

1

Скачать инструмент