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

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

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

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

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

Категории

Все категории
Loading categories
jquery-cve-2022-31160 — jquery XSS Proof of Concept (PoC) | Kitploit
Инструменты/GitHubGitHub/cyberone-teamares/jquery-cve-2022-31160
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьCTFОбучение и Образование
GitHubcyberone-teamares/jquery-cve-2022-31160

jquery-cve-2022-31160

jquery XSS Proof of Concept (PoC)

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

Популярное

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

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

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

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

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

jQuery UI CVE-2022-31160 Демонстрация уязвимости

Security Badge jQuery UI CVE Docker

Этот проект демонстрирует уязвимость виджета Checkboxradio jQuery UI (CVE-2022-31160), которая приводит к некорректному декодированию HTML-сущностей при обновлении виджета, что потенциально может вызвать межсайтовый скриптинг (XSS).

🚨 Предупреждение по безопасности

⚠️ Этот проект содержит действующие XSS-пейлоады только для образовательных и исследовательских целей.

  • НЕ ИСПОЛЬЗУЙТЕ на продуктивных системах
  • Используйте только в контролируемых средах
  • Предназначено для исследований в области безопасности и обучения

📋 Содержание

  • Обзор уязвимости
  • Быстрый старт
  • Структура проекта
  • Демонстрации
  • Технические детали
  • Использование Docker
  • Анализ безопасности
  • Меры по смягчению
  • Участие в разработке

🔍 Обзор уязвимости

Детали CVE-2022-31160

  • Компонент: Виджет Checkboxradio jQuery UI
  • Затронутые версии: jQuery UI ≤ 1.13.1
  • Тип уязвимости: Межсайтовый скриптинг (XSS) через декодирование HTML-сущностей
  • Оценка CVSS: 6.1 (Средний)
  • Дата первой публикации: 20 июля 2022 года

Первопричина

Когда виджет checkboxradio инициализируется на элементе ввода, вложенном внутрь метки, вызов .checkboxradio("refresh") для этого виджета приводит к ошибочному декодированию HTML-сущностей в содержимом метки. Это может преобразовать безопасно закодированное вредоносное содержимое в исполняемый JavaScript.

Вектор атаки

<!-- Безопасно закодированное содержимое -->
<label for="checkbox">
  Текст &lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;
  <input type="checkbox" id="checkbox">
</label>

<!-- После .checkboxradio("refresh") -->
<label for="checkbox">
  Текст 
  <input type="checkbox" id="checkbox">
</label>

🚀 Быстрый старт

Предварительные требования

  • Установленный Docker в вашей системе
  • Веб-браузер с инструментами разработчика
  • Базовое понимание концепций веб-безопасности

Сборка и запуск

# Перейдите в директорию проекта
cd jquery-cve-2022-31160

# Соберите Docker-образ
docker build -t jquery-cve-2022-31160 .

# Запустите контейнер
docker run -p 3000:3000 jquery-cve-2022-31160

Доступ к демонстрациям

После запуска контейнера откройте:

  • Упрощённая демонстрация опроса: http://localhost:3000/survey
  • Альтернативный URL опроса: http://localhost:3000/simplified-survey

📁 Структура проекта

jquery-cve-2022-31160/
├── README.md                    # Эта документация
├── Dockerfile                   # Конфигурация контейнера Docker
├── package.json                 # Зависимости Node.js
├── server.js                    # Сервер Express.js
└── simplified-survey.html       # Демонстрация в стиле опроса

🎯 Демонстрации

1. Упрощённая демонстрация опроса (simplified-survey.html)

URL: http://localhost:3000/survey

  • Интерфейс в стиле опроса
  • Несколько сценариев уязвимости
  • Улучшенная визуальная обратная связь

Особенности:

  • 4 различных варианта чекбоксов, демонстрирующие различные сценарии:
    • Безопасный вариант: Нет закодированных сущностей (контрольная группа)
    • Сетевая безопасность XSS: &lt;img src=x onerror=&quot;...&quot;&gt; - Немедленное выполнение
    • Мобильная безопасность XSS: &lt;details ontoggle=&quot;...&quot; open&gt; - Немедленное выполнение
    • Облачная безопасность XSS: &lt;span onmouseover=&quot;...&quot;&gt; - Интерактивное выполнение

Инструменты анализа:

  • Подробное логирование в консоль
  • Всплывающие предупреждения о выполнении XSS
  • Пошаговое отслеживание уязвимости

🔧 Технические детали

Механизм уязвимости

  1. Инициализация виджета: jQuery UI создаёт виджет checkboxradio
  2. Хранение HTML-сущностей: Содержимое метки с закодированными сущностями обрабатывается
  3. Триггер обновления: Вызывается .checkboxradio("refresh")
  4. Декодирование сущностей: jQuery UI ошибочно декодирует HTML-сущности
  5. Выполнение XSS: Декодированное вредоносное содержимое становится исполняемым

Затронутый путь кода

// Уязвимая операция
$('#vulnerable-checkbox').checkboxradio();
$('#vulnerable-checkbox').checkboxradio("refresh"); // Запускает уязвимость

Тестовые пейлоады

Демонстрации включают различные пейлоады для тестирования разных методов выполнения XSS:

<!-- Сетевая безопасность: XSS через обработчик ошибок (немедленное выполнение) -->
&lt;img src=x onerror=&quot;console.log('XSS via widget refresh!'); alert('Widget refresh XSS executed!');&quot;&gt;

<!-- Мобильная безопасность: XSS через событие toggle (немедленное выполнение) -->
&lt;details ontoggle=&quot;alert('Mobile Security XSS executed!'); console.log('Mobile XSS via details ontoggle!')&quot; open&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/details&gt;

<!-- Облачная безопасность: Интерактивный XSS (требуется действие пользователя) -->
&lt;span onmouseover=&quot;alert('Hover XSS executed!'); console.log('Cloud Security XSS via mouseover!')&quot; style=&quot;text-decoration:underline; cursor:pointer;&quot;&gt;[Наведите для запуска]&lt;/span&gt;

Методы выполнения XSS

1. Обработчик события ошибки (onerror)

  • Запуск: Немедленный при вставке элемента в DOM
  • Надёжность: Очень высокая (всегда завершается ошибкой с src=x)
  • Сценарий использования: Демонстрирует немедленное выполнение XSS
  • Риск в реальном мире: Высокий - часто обходит фильтры ввода

2. Обработчик события toggle (ontoggle)

  • Запуск: При изменении состояния открытия/закрытия элемента details
  • Надёжность: Очень высокая (гарантированный запуск с атрибутом open)
  • Сценарий использования: Немедленное выполнение при вставке в DOM
  • Риск в реальном мире: Высокий - надёжное выполнение в разных браузерах

3. Обработчик события мыши (onmouseover)

  • Запуск: Требует действия пользователя (наведение курсора)
  • Надёжность: Высокая при взаимодействии пользователя
  • Сценарий использования: Сценарии социальной инженерии
  • Риск в реальном мире: Средний - требует участия пользователя

Почему эти пейлоады работают

Преимущества обработчиков событий:

  • Выполняются при вставке элемента через innerHTML
  • Обходят ограничения тегов <script>
  • Стабильно работают в разных браузерах
  • Не требуют загрузки внешних ресурсов
  • Триггеры на основе состояний (например, ontoggle) очень надёжны

Обход кодирования:

  • HTML-сущности (&lt;, &quot;) декодируются при обновлении jQuery UI
  • Преобразует безопасно закодированное содержимое в исполняемый код
  • Демонстрирует обход санитизации в реальном мире
  • Разнообразие векторов выполнения показывает широту поверхности атаки

🐳 Использование Docker

Сборка образа

docker build -t jquery-cve-2022-31160 .

Запуск контейнера

# Запуск на стандартном порту 3000
docker run -p 3000:3000 jquery-cve-2022-31160

# Запуск на пользовательском порту
docker run -p 8080:3000 jquery-cve-2022-31160

# Запуск в фоновом режиме
docker run -d -p 3000:3000 jquery-cve-2022-31160

# Запуск с пользовательским именем
docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160

Управление контейнером

# Список запущенных контейнеров
docker ps

# Остановка контейнера
docker stop jquery-cve-2022-31160

# Удаление контейнера
docker rm jquery-cve-2022-31160

# Удаление образа
docker rmi jquery-cve-2022-31160

🔬 Анализ безопасности

Оценка воздействия

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