Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2019-9511_Priority-Churn-Data-Dribble — Leichte HTTP/2-Sonden zur kontrollierten Validierung von CVE-2019-9511 (Data Dribble) und CVE-2019-9513 (Priority Churn) DoS-Vektoren in autorisierten Umgebungen. | Kitploit
Tools/GitHubGitHub/harley-ghostie/cve-2019-9511_priority-churn-data-dribble
SchwachstellenanalyseExploitationWebsicherheitNetzwerksicherheitPenetrationstests
GitHubharley-ghostie/cve-2019-9511_priority-churn-data-dribble

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

Leichte HTTP/2-Sonden zur kontrollierten Validierung von CVE-2019-9511 (Data Dribble) und CVE-2019-9513 (Priority Churn) DoS-Vektoren in autorisierten Umgebungen.

Repository anzeigen
vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

HTTP/2 CVE-2019-9511 & CVE-2019-9513 Leichte Sonden

Repository mit kontrollierten Validierungsskripten für Verhaltensweisen im Zusammenhang mit den CVEs CVE-2019-9511 und CVE-2019-9513, die beide mit Denial-of-Service-Vektoren in HTTP/2-Implementierungen verbunden sind.

Die Skripte wurden erstellt, um technische Validierungen in autorisierten Umgebungen zu unterstützen. Sie ermöglichen die Beobachtung, ob der Server HTTP/2 aushandelt und auf bestimmte Muster im Zusammenhang mit Data Dribble und Priority Churn reagiert, ohne einen Denial-of-Service-Angriff auszuführen.

Ziel ist es, den Vektor auf leichte und sichere Weise nachzuweisen, mit geringem Anfragevolumen und ohne das Ziel, die Umgebung lahmzulegen.


Betroffene CVEs

CVENameSkriptBeschreibung
CVE-2019-9511HTTP/2 Data Dribbledata_dribble_probe.pyValidiert das Verhalten der HTTP/2-Flusskontrolle durch kontrollierte Freigabe kleiner Datenmengen.
CVE-2019-9513HTTP/2 Priority Churn / Resource Looppriority_churn_probe.pyValidiert das Verhalten bei der Verarbeitung von PRIORITY-Frames mit geringer Intensität.

Zusammenfassung der Schwachstellen

CVE-2019-9511 — HTTP/2 Data Dribble

Die CVE-2019-9511, bekannt als HTTP/2 Data Dribble, betrifft einige HTTP/2-Implementierungen, die das Fenstermanagement und die schrittweise Datenauslieferung nicht effizient handhaben.

In diesem Szenario kann ein Angreifer Daten vom Server anfordern und die Flusskontrolle so manipulieren, dass die Antwort offen gehalten und in kleinen Blöcken (z. B. 1‑Byte-Paketen) ausgeliefert wird. Je nach Implementierung kann dieses Verhalten zu übermäßigem CPU‑, Speicher- oder Verbindungsressourcenverbrauch führen, was ein Denial-of-Service-Risiko darstellt.

In diesem Repository ist das zugehörige Skript:

root@kitploit:~
data_dribble_probe.py

Ziel des Skripts ist es, das Verhalten auf leichte Weise zu validieren, ohne aggressive Last zu erzeugen oder eine Nichtverfügbarkeit herbeizuführen.

Referenzen:

  • 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

Die CVE-2019-9513, bekannt als HTTP/2 Priority Churn oder Resource Loop, betrifft einige HTTP/2-Implementierungen, die kontinuierliche Änderungen im Prioritätsbaum der Streams aufwändig verarbeiten.

In diesem Szenario kann ein Angreifer mehrere Streams erstellen und wiederholt die Priorität zwischen ihnen ändern, was zu Churn im Prioritätsbaum führt. Je nach Implementierung kann dieses Verhalten übermäßigen CPU‑Verbrauch verursachen und zu einem Denial-of-Service führen.

In diesem Repository ist das zugehörige Skript:

root@kitploit:~
priority_churn_probe.py

Ziel des Skripts ist es zu validieren, ob der Server PRIORITY-Frames akzeptiert und verarbeitet – bei geringer Intensität und ohne einen DoS-Angriff auszuführen.

Referenzen:

  • 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

Hinweis zu betroffenen Versionen

Die CVEs CVE-2019-9511 und CVE-2019-9513 sind nicht an eine einzige spezifische Version eines Webservers (wie nur nginx, Apache oder Tomcat) gebunden.

Sie betreffen bestimmte HTTP/2-Implementierungen in verschiedenen Produkten, Bibliotheken, Proxys, Load-Balancern und Servern. Daher sollte die Validierung berücksichtigen, welche Komponente im analysierten Umfeld HTTP/2 aushandelt und verarbeitet.

Beispiele für möglicherweise beteiligte Komponenten:

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

Das erste technische Kriterium ist die Bestätigung, ob der Dienst HTTP/2 per ALPN aushandelt. Falls der Dienst kein h2 aushandelt, sind diese Skripte nicht anwendbar.

Die Bestätigung einer Schwachstelle pro Version muss auf Grundlage des offiziellen Advisories des Herstellers der identifizierten Komponente erfolgen.


Vorvalidierung: HTTP/2-Unterstützung prüfen

Führen Sie vor der Ausführung der Skripte eine Validierung durch, ob das Ziel HTTP/2 per ALPN aushandelt.

Verwenden Sie im Befehl nur die Domain, ohne https://.

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

Auch mit Platzhalter möglich:

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

Erwartete Ausgabe:

root@kitploit:~
ALPN protocol: h2

Wenn die Ausgabe h2 anzeigt, handelt der Dienst HTTP/2 aus, und die Skripte können anwendbar sein.

Wenn keine Rückmeldung erfolgt oder das ausgehandelte Protokoll ein anderes ist (z. B. http/1.1), sind die Skripte für diesen Endpunkt nicht anwendbar.

Übersicht über die Skripte

SkriptZugehörige CVEZweckWann verwenden
data_dribble_probe.pyCVE-2019-9511Validierung des Data‑Dribble-Verhaltens mittels Fensterkontrolle zur Freigabe kleiner DatenblöckeWenn der Server HTTP/2 unterstützt und das Verhalten der DATA‑Frame-Auslieferung mit reduziertem Fenster überprüft werden soll.
priority_churn_probe.pyCVE-2019-9513Validierung des Priority‑Churn-Verhaltens mittels PRIORITY-Frames bei geringer IntensitätWenn der Server HTTP/2 unterstützt und geprüft werden soll, ob er Prioritätsänderungen von Streams verarbeitet.

Empfohlener Ablauf

Die logischste Reihenfolge zur Verwendung der Skripte ist:

root@kitploit:~
1. HTTP/2-Vorvalidierung mit openssl
   ↓
2. priority_churn_probe.py
   ↓
3. data_dribble_probe.py

Kurze Erklärung des Ablaufs

Verwenden Sie zuerst den Befehl mit openssl, um zu bestätigen, dass das Ziel HTTP/2 aushandelt. Verwenden Sie dann priority_churn_probe.py, um zu validieren, ob der Server Prioritäts-Frames akzeptiert und verarbeitet. Verwenden Sie anschließend data_dribble_probe.py, um das Serververhalten bei reduziertem Flussfenster zu beobachten, indem kleine Datenmengen kontrolliert freigegeben werden.

Beide Skripte sind leichte Sonden. Sie zielen nicht darauf ab, eine Nichtverfügbarkeit herbeizuführen, sondern einen technischen Nachweis des beobachteten Verhaltens zu erbringen.


Skripte

priority_churn_probe.py

Beschreibung

priority_churn_probe.py ist eine leichte PoC zur Validierung des Verhaltens im Zusammenhang mit CVE-2019-9513, bekannt als HTTP/2 Priority Churn.

Das Skript stellt eine HTTP/2-Verbindung per TLS her, öffnet kleine HTTP-Streams und sendet Prioritätsänderungen mittels PRIORITY-Frames. Anschließend misst es die Latenz vor und nach dem Senden dieser Frames, um festzustellen, ob es eine Verarbeitungsvariation gibt.

Was das Skript tut

  • Handelt HTTP/2 per ALPN aus;
  • Stellt eine TLS-Verbindung zum angegebenen Host her;
  • Sendet einfache GET-Anfragen an bis zu drei Pfade;
  • Misst die anfängliche Latenz mittels PING;
  • Verwendet einen Fallback mit GET, falls PING nicht ausreicht;
  • Sendet PRIORITY-Frames mit geringer Intensität;
  • Misst die Latenz nach dem Prioritäts-Churn;
  • Zeigt einen Vergleich der Zeit vor und nach dem Test an.

Anwendungsszenario

Verwenden Sie dieses Skript, wenn validiert werden muss, ob ein HTTP/2-Server Prioritäts-Frames im Zusammenhang mit dem Priority Churn-Vektor akzeptiert und verarbeitet – ohne einen aggressiven DoS-Test durchzuführen.

Es eignet sich für kontrollierte Validierungen in Pentests, HTTP/2-Expositionsanalysen und den technischen Nachweis eines anfälligen oder potenziell sensiblen Verhaltens.

Zu ändernde Felder/Parameter

Das Skript erhält die Werte über Kommandozeilenargumente:

root@kitploit:~
--host
--port
--paths
--shuffles

Erklärung der Parameter

ParameterBeschreibung
--hostFQDN des autorisierten Ziels. Kein https:// einfügen.
--portTLS-Port, auf dem der HTTP/2-Dienst verfügbar ist. Standard: 443.
--pathsListe einfacher Pfade zum Öffnen von HTTP/2-Streams.
--shufflesAnzahl der Zyklen von Prioritätsänderungen. Für einen sicheren Test niedrig halten.

Idealer Pfad für den Test

Verwenden Sie leichte, öffentliche und wenig belastende Pfade wie:

root@kitploit:~
/
/robots.txt
/favicon.ico
/health
/login

Vermeiden Sie Pfade, die schwere Operationen, komplexe Abfragen, Berichtserstellung, Uploads, erweiterte Suche oder andere Backend-lastige Funktionen ausführen.

Beispiel für eine sichere Nutzung

root@kitploit:~
python3 priority_churn_probe.py --host exemplo.com.br --port 443 --paths / /robots.txt /favicon.ico --shuffles 10

Erwartete Ausgabe

Beispielausgabe:

root@kitploit:~
[OK] PING vorher: 45.20 ms; nach Churn: 52.80 ms; shuffles=10
Signal 9513: PRIORITY-Frames akzeptiert und verarbeitet; leichter Anstieg nach Churn belegt den Vektor (ohne DoS).

Interpretation des Ergebnisses

Wenn das Skript HTTP/2 aushandeln, Streams öffnen und PRIORITY-Frames senden kann, zeigt dies, dass der Server diese Art von Verhalten verarbeitet.

Ein leichter Anstieg der Latenz nach dem Churn kann als technischer Nachweis für das Vorhandensein des Vektors verwendet werden, sollte aber nicht allein als Beleg für eine schwerwiegende Auswirkung interpretiert werden. Die endgültige Einstufung hängt vom Kontext, der Serverversion, der Architektur, den mitigierenden Maßnahmen, WAF/CDN und der HTTP/2-Konfiguration ab.


data_dribble_probe.py

Beschreibung

data_dribble_probe.py ist eine leichte PoC zur Validierung des Verhaltens im Zusammenhang mit CVE-2019-9511, bekannt als HTTP/2 Data Dribble.

Das Skript stellt eine HTTP/2-Verbindung per TLS her, öffnet einen einzelnen Stream und manipuliert das Flusskontrollfenster, um kleine Datenmengen freizugeben und so das Verhalten der schrittweisen Auslieferung von DATA-Frames zu simulieren.

Was das Skript tut

  • Handelt HTTP/2 per ALPN aus;
  • Stellt eine TLS-Verbindung zum angegebenen Host her;
  • Sendet eine GET-Anfrage an den definierten Pfad;
  • Passt das anfängliche Flussfenster an;
  • Gibt kontrolliert kleine Datenmengen frei;
  • Zählt empfangene DATA-Frames;
  • Zeigt die Anzahl der freigegebenen Bytes, empfangenen Frames und die Gesamtzeit an.

Anwendungsszenario

Verwenden Sie dieses Skript, wenn validiert werden muss, ob der HTTP/2-Server auf ein Muster reduzierter Flusskontrolle im Zusammenhang mit dem Data Dribble-Vektor reagiert – ohne aggressive Last zu erzeugen.

Es eignet sich für kontrollierte technische Nachweise, insbesondere wenn automatisierte Tools auf eine mögliche Exposition hinweisen und eine manuelle Validierung mit geringerem Betriebsrisiko erforderlich ist.

Zu ändernde Felder/Parameter

Das Skript erhält die Werte über Kommandozeilenargumente:

root@kitploit:~
--host
--path
--port
--bytes

Erklärung der Parameter

ParameterBeschreibung
--hostFQDN des autorisierten Ziels. Kein https:// einfügen.
--pathPfad, der im Test angefordert wird.
--portTLS-Port, auf dem der HTTP/2-Dienst verfügbar ist. Standard: 443.
--bytesGesamtzahl der während des Tests freigegebenen Bytes. Für eine sichere Validierung niedrig halten.

Idealer Pfad für den Test

Verwenden Sie einen einfachen, statischen oder für den Server kostengünstigen Pfad, wie z. B.:

root@kitploit:~
/
/robots.txt
/favicon.ico
/health
/login

Vermeiden Sie Endpunkte, die Datenbankabfragen, schwere Authentifizierung, asynchrone Verarbeitung, Dokumentenerstellung oder Aufrufe interner Systeme durchführen.

Beispiel für eine sichere Nutzung

root@kitploit:~
python3 data_dribble_probe.py --host exemplo.com.br --path / --port 443 --bytes 12

Erwartete Ausgabe

Beispielausgabe:

root@kitploit:~
[OK] HTTP/2 ausgehandelt; empfangene DATA-Frames: 12; freigegebene Bytes: 12; Zeit(ms): 1450
Signal 9511: mehrere winzige DATA unter Fenster=1 ausgeliefert (Nachweis des 'Dribble'-Pfads ohne Stress).

Interpretation des Ergebnisses

Wenn das Skript HTTP/2 aushandelt und kleine DATA-Frames gemäß der Freigabe des Flussfensters empfängt, zeigt dies, dass der Server dieses Flusskontrollmuster verarbeitet.

Dieses Verhalten kann als technischer Nachweis für den Vektor verwendet werden, aber die Kritikalität sollte den tatsächlichen Kontext der Umgebung berücksichtigen, wie verwendeten Server, Version, Verbindungsgrenzen, Load-Balancer, CDN, WAF, Timeout und Missbrauchsschutzmaßnahmen.


Abhängigkeiten

Die Skripte erfordern Python 3 und die Bibliothek h2.

root@kitploit:~
python3
pip
h2
ssl
socket
argparse

Die Bibliotheken ssl, socket, time, argparse und select sind Teil der Python-Standardbibliothek.

Die wichtigste externe Abhängigkeit ist:

root@kitploit:~
h2

Installation der Abhängigkeiten

Direkte Installation:

root@kitploit:~
python3 -m pip install h2

Installation mit virtueller Umgebung:

root@kitploit:~
python3 -m venv venv
source venv/bin/activate
pip install h2

Installation validieren:

root@kitploit:~
python3 -c "import h2; print('h2 erfolgreich installiert')"

Vor der Ausführung erforderliche Anpassungen

1. HTTP/2-Unterstützung bestätigen

Die Skripte sind auf die HTTP/2-Aushandlung per ALPN angewiesen.

Bestätigen Sie vor der Ausführung, ob der Server HTTP/2 unterstützt:

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

Erwartete Ausgabe:

root@kitploit:~
ALPN protocol: h2

Wenn der Server kein h2 aushandelt, sind die Skripte nicht anwendbar.


2. Nur FQDN im Parameter --host verwenden

Geben Sie https:// nicht im Parameter --host an.

Richtig:

root@kitploit:~
--host exemplo.com.br

Falsch:

root@kitploit:~
--host https://exemplo.com.br

3. Leichte Pfade wählen

Bevorzugen Sie einfache Pfade:

root@kitploit:~
/
/robots.txt
/favicon.ico
/health

Vermeiden Sie sensible oder lastintensive Endpunkte:

root@kitploit:~
/relatorios
/export
/search
/upload
/api/processamento

Ziel ist es, das HTTP/2-Verhalten zu validieren, nicht das Backend zu belasten.


4. Werte niedrig halten

Verwenden Sie konservative Werte:

Für priority_churn_probe.py:

root@kitploit:~
--shuffles 10

Für data_dribble_probe.py:

root@kitploit:~
--bytes 12

Erhöhen Sie diese Werte in einer Produktionsumgebung nicht ohne ausdrückliche Genehmigung.


Anwendungsbeispiele

HTTP/2-Vorvalidierung

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

Priority Churn — CVE-2019-9513

root@kitploit:~
python3 priority_churn_probe.py --host exemplo.com.br --port 443 --paths / /robots.txt /favicon.ico --shuffles 10

Data Dribble — CVE-2019-9511

root@kitploit:~
python3 data_dribble_probe.py --host exemplo.com.br --path / --port 443 --bytes 12

Empfehlungen zur Minderung

Um Risiken im Zusammenhang mit HTTP/2-DoS-Angriffen zu reduzieren, wird empfohlen, Webserver, Proxys, Load-Balancer und HTTP/2-Bibliotheken auf dem neuesten Stand zu halten, Verbindungslimits festzulegen, angemessene Timeouts zu konfigurieren, die Anzahl gleichzeitiger Streams zu begrenzen, Missbrauch von HTTP/2-Frames einzuschränken, Latenzanomalien zu überwachen und die Deaktivierung von HTTP/2 in Diensten, die dieses Protokoll nicht benötigen, zu evaluieren.

Es wird auch empfohlen, den Schutz in Schichten wie CDN, WAF, Reverse Proxy, Ingress Controller und Load Balancer zu validieren, da die tatsächliche Exposition oft eher von der Edge als von der endgültigen Anwendung abhängt.

Die Bestätigung einer Korrektur sollte auf Basis der Komponente erfolgen, die HTTP/2 in der Umgebung tatsächlich terminiert und verarbeitet, wie Webserver, Proxy, Load Balancer, CDN oder Ingress Controller.


Sicherheitshinweis

Diese Skripte dürfen nur in autorisierten Umgebungen verwendet werden.

Obwohl sie für eine leichte Ausführung geschrieben wurden, interagieren sie direkt mit HTTP/2-Mechanismen, die mit DoS-Vektoren in Verbindung stehen. Daher muss die Nutzung mit dem formalen Testumfang, den Engagement-Regeln und den vom Verantwortlichen der Umgebung festgelegten Betriebsgrenzen übereinstimmen.

Bestätigen Sie vor der Ausführung in der Produktion:

  • autorisierte Domain;
  • erlaubtes Testfenster;
  • Intensitätsgrenze;
  • erlaubte Pfade;
  • Notfallkontakte;
  • erwartete Nachweise;
  • Kriterien für den Testabbruch.

Rechtlicher Hinweis

Die Verwendung dieser Skripte gegen Systeme ohne Autorisierung ist verboten.

Der Zweck dieses Repositorys ist ausschließlich die Unterstützung legitimer Sicherheitsaktivitäten wie autorisierte Pentests, kontrollierte Schwachstellenvalidierung, Laborarbeit, technische Studien und sichere Risikodemonstration.

Tool herunterladen