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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2019-9511_Priority-Churn-Data-Dribble — Легковесные HTTP/2 зонды для контролируемой проверки векторов DoS CVE-2019-9511 (Data Dribble) и CVE-2019-9513 (Priority Churn) в авторизованных средах. | Kitploit
Инструменты/GitHubGitHub/harley-ghostie/cve-2019-9511_priority-churn-data-dribble
Анализ уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьТестирование на Проникновение
GitHubharley-ghostie/cve-2019-9511_priority-churn-data-dribble

CVE-2019-9511_Priority-Churn-Data-Dribble

Легковесные HTTP/2 зонды для контролируемой проверки векторов DoS CVE-2019-9511 (Data Dribble) и CVE-2019-9513 (Priority Churn) в авторизованных средах.

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

Популярное

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

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

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

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

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

HTTP/2 CVE-2019-9511 & CVE-2019-9513 Lightweight Probes

Репозиторий со скриптами контролируемой валидации поведения, связанного с CVE CVE-2019-9511 и CVE-2019-9513, обе касаются векторов отказа в обслуживании в реализациях HTTP/2.

Скрипты созданы для поддержки технических проверок в авторизованных средах, позволяя наблюдать, договаривается ли сервер об HTTP/2 и отвечает ли на определенные шаблоны, связанные с Data Dribble и Priority Churn, без выполнения атаки типа "отказ в обслуживании".

Цель — подтвердить вектор легким и безопасным способом, с низким объемом запросов и без цели сделать среду недоступной.


Рассматриваемые CVE

CVEИмяСкриптОписание
CVE-2019-9511HTTP/2 Data Dribbledata_dribble_probe.pyПроверяет поведение управления потоком HTTP/2, высвобождая малые объемы данных контролируемым образом.
CVE-2019-9513HTTP/2 Priority Churn / Resource Looppriority_churn_probe.pyПроверяет поведение обработки фреймов PRIORITY с низкой интенсивностью.

Краткое описание уязвимостей

CVE-2019-9511 — HTTP/2 Data Dribble

CVE-2019-9511, известная как HTTP/2 Data Dribble, затрагивает некоторые реализации HTTP/2, которые неэффективно обрабатывают манипуляции с окном потока и постепенную доставку данных.

В этом сценарии атакующий может запрашивать данные у сервера и манипулировать управлением потоком, чтобы ответ оставался открытым и доставлялся небольшими блоками, например пакетами по 1 байту. В зависимости от реализации такое поведение может вызвать чрезмерное потребление CPU, памяти или ресурсов соединения, что приводит к риску отказа в обслуживании.

В этом репозитории соответствующий скрипт:

data_dribble_probe.py

Цель скрипта — проверить поведение легким способом, без создания агрессивной нагрузки и без попыток вызвать недоступность.

Ссылки:

  • https://nvd.nist.gov/vuln/detail/CVE-2019-9511
  • https://www.cve.org/CVERecord?id=CVE-2019-9511
  • https://ubuntu.com/security/CVE-2019-9511

CVE-2019-9513 — HTTP/2 Priority Churn / Resource Loop

CVE-2019-9513, известная как HTTP/2 Priority Churn или Resource Loop, затрагивает некоторые реализации HTTP/2, которые дорого обрабатывают непрерывные изменения в дереве приоритетов потоков.

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

В этом репозитории соответствующий скрипт:

priority_churn_probe.py

Цель скрипта — проверить, принимает ли сервер и обрабатывает ли фреймы PRIORITY, используя низкую интенсивность и не выполняя DoS-атаку.

Ссылки:

  • https://nvd.nist.gov/vuln/detail/CVE-2019-9513
  • https://www.cve.org/CVERecord?id=CVE-2019-9513
  • https://ubuntu.com/security/CVE-2019-9513

Примечание о затронутых версиях

CVE CVE-2019-9511 и CVE-2019-9513 не привязаны к одной конкретной версии веб-сервера, например только nginx, Apache или Tomcat.

Они затрагивают определенные реализации HTTP/2 в различных продуктах, библиотеках, прокси, балансировщиках и серверах. Поэтому проверка должна учитывать, какой компонент ведет переговоры и обрабатывает HTTP/2 в анализируемой среде.

Примеры компонентов, которые могут быть задействованы:

nginx
Apache HTTP Server
Envoy
HAProxy
Tomcat
Jetty
Node.js
Go net/http2
nghttp2
CDN
WAF
Load Balancer
Ingress Controller Kubernetes

Первое техническое условие — подтвердить, что сервис договаривается об HTTP/2 через ALPN. Если сервис не договаривается о h2, эти скрипты неприменимы.

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


Предварительная проверка: поддержка HTTP/2

Перед запуском скриптов проверьте, договаривается ли цель об HTTP/2 через ALPN.

Используйте только домен в команде, без https://.

openssl s_client -alpn h2 -connect exemplo.com.br:443 </dev/null 2>/dev/null | grep -i "ALPN"

Также можно использовать с плейсхолдером:

openssl s_client -alpn h2 -connect <HOST>:443 </dev/null 2>/dev/null | grep -i "ALPN"

Ожидаемый вывод:

ALPN protocol: h2

Если вывод показывает h2, сервис договаривается об HTTP/2, и скрипты могут быть применимы.

Если ответа нет или согласован другой протокол, например http/1.1, скрипты для этой конечной точки неприменимы.

Обзор скриптов

СкриптСвязанная CVEЦельКогда использовать
data_dribble_probe.pyCVE-2019-9511Проверить поведение, связанное с Data Dribble, используя управление окном для высвобождения малых блоков данныхИспользовать, когда сервер поддерживает HTTP/2 и есть необходимость проверить поведение при доставке DATA-фреймов с уменьшенным окном.
priority_churn_probe.pyCVE-2019-9513Проверить поведение, связанное с Priority Churn, используя фреймы PRIORITY с низкой интенсивностьюИспользовать, когда сервер поддерживает HTTP/2 и есть необходимость проверить, обрабатывает ли он изменения приоритетов потоков.

Рекомендуемый порядок использования

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

1. Предварительная проверка HTTP/2 с openssl
   ↓
2. priority_churn_probe.py
   ↓
3. data_dribble_probe.py

Краткое объяснение порядка

Сначала используйте команду с openssl, чтобы подтвердить, что цель договаривается об HTTP/2. Затем используйте priority_churn_probe.py для проверки, принимает ли сервер и обрабатывает ли фреймы приоритета. После этого используйте data_dribble_probe.py для наблюдения за поведением сервера при уменьшенном окне потока, высвобождая малые объемы данных контролируемым образом.

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


Скрипты

priority_churn_probe.py

Описание

priority_churn_probe.py — это легкая PoC для проверки поведения, связанного с CVE-2019-9513, известной как HTTP/2 Priority Churn.

Скрипт устанавливает соединение HTTP/2 через TLS, открывает небольшие HTTP-потоки и отправляет изменения приоритета через фреймы PRIORITY. Затем измеряет задержку до и после отправки этих фреймов, чтобы наблюдать, есть ли вариация в обработке.

Что делает скрипт

  • Договаривается об HTTP/2 через ALPN;
  • Открывает TLS-соединение с указанным хостом;
  • Отправляет простые GET-запросы к до трех путей;
  • Измеряет начальную задержку с помощью PING;
  • Использует запасной вариант с GET, если PING недостаточно;
  • Отправляет фреймы PRIORITY с низкой интенсивностью;
  • Измеряет задержку после перемешивания приоритетов;
  • Выводит сравнение времени до и после теста.

Сценарий использования

Используйте этот скрипт, когда необходимо проверить, принимает ли HTTP/2 сервер и обрабатывает ли фреймы приоритета, связанные с вектором Priority Churn, без выполнения агрессивного DoS-теста.

Он подходит для контролируемой проверки в рамках пентестов, анализа подверженности HTTP/2 и технического подтверждения уязвимого или потенциально чувствительного поведения.

Поля/параметры, которые нужно изменить

Скрипт принимает значения через аргументы командной строки:

--host
--port
--paths
--shuffles

Объяснение параметров

ПараметрОписание
--hostFQDN разрешенной цели. Не включать https://.
--portTLS-порт, на котором доступен сервис HTTP/2. По умолчанию: 443.
--pathsСписок простых путей для открытия HTTP/2 потоков.
--shufflesКоличество циклов изменения приоритета. Держать низким для безопасного теста.

Идеальный путь для теста

Используйте легкие, общедоступные пути с низким воздействием, например:

/
/robots.txt
/favicon.ico
/health
/login
Скачать инструмент