Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/harley-ghostie/cve-2019-9511_priority-churn-data-dribble
Vulnerability AnalysisExploitationWeb SecurityNetwork SecurityPenetration Testing
GitHubharley-ghostie/cve-2019-9511_priority-churn-data-dribble

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

가벼운 HTTP/2 프로브로, 승인된 환경에서 CVE-2019-9511 (Data Dribble) 및 CVE-2019-9513 (Priority Churn) DoS 벡터를 제어된 방식으로 검증합니다.

저장소 보기
125개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

HTTP/2 CVE-2019-9511 및 CVE-2019-9513 경량 프로브

CVE-2019-9511 및 CVE-2019-9513 CVE와 관련된 동작을 제어된 방식으로 검증하기 위한 스크립트 저장소입니다. 두 CVE 모두 HTTP/2 구현에서 서비스 거부(DoS) 벡터와 관련되어 있습니다.

스크립트는 승인된 환경에서 기술 검증을 지원하기 위해 만들어졌으며, 서버가 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

스크립트의 목적은 DoS 공격을 수행하지 않고 낮은 강도로 서버가 PRIORITY 프레임을 수락하고 처리하는지 검증하는 것입니다.

참고 자료:

  • 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-2019-9511 및 CVE-2019-9513 CVE는 nginx, Apache, Tomcat과 같은 단일 특정 웹 서버 버전에만 국한되지 않습니다.

이 CVE는 다양한 제품, 라이브러리, 프록시, 로드밸런서 및 서버의 특정 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

첫 번째 기술적 기준은 서비스가 ALPN을 통해 HTTP/2를 협상하는지 확인하는 것입니다. 서비스가 h2를 협상하지 않으면 이 스크립트는 적용되지 않습니다.

버전별 취약점 확인은 식별된 구성 요소 제조업체의 공식 권고를 기반으로 이루어져야 합니다.


사전 검증: HTTP/2 지원 확인

스크립트를 실행하기 전에 대상이 ALPN을 통해 HTTP/2를 협상하는지 확인하십시오.

명령어에는 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 프레임을 사용하여 Priority Churn 관련 동작 검증서버가 HTTP/2를 지원하고 스트림 우선순위 변경을 처리하는지 확인할 필요가 있을 때 사용

권장 사용 흐름

스크립트 사용의 가장 논리적인 순서는 다음과 같습니다:

1. Pré-validação HTTP/2 com 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는 HTTP/2 Priority Churn으로 알려진 CVE-2019-9513 관련 동작 검증을 위한 경량 PoC입니다.

스크립트는 TLS를 통해 HTTP/2 연결을 설정하고, 작은 HTTP 스트림을 열고, PRIORITY 프레임을 통해 우선순위 변경을 전송합니다. 그런 다음 이러한 프레임 전송 전후의 지연 시간을 측정하여 처리에 변화가 있는지 관찰합니다.

스크립트가 수행하는 작업

  • ALPN을 통해 HTTP/2 협상;
  • 지정된 호스트와 TLS 연결 수립;
  • 최대 세 개의 경로에 간단한 GET 요청 전송;
  • PING을 사용하여 초기 지연 시간 측정;
  • PING이 충분하지 않은 경우 GET으로 대체;
  • 낮은 강도로 PRIORITY 프레임 전송;
  • 우선순위 변동 이후 지연 시간 측정;
  • 테스트 전후 시간 비교 표시.

사용 시나리오

공격적인 DoS 테스트를 수행하지 않고 Priority Churn 벡터와 관련된 우선순위 프레임을 서버가 수락하고 처리하는지 검증해야 할 때 이 스크립트를 사용하십시오.

이 스크립트는 펜테스트, HTTP/2 노출 분석, 취약하거나 잠재적으로 민감한 동작의 기술적 증명에서 제어된 검증에 적합합니다.

변경해야 하는 필드/매개변수

스크립트는 명령줄 인수를 통해 값을 받습니다:

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

매개변수 설명

매개변수설명
--host승인된 대상의 FQDN. https://를 포함하지 마십시오.
--portHTTP/2 서비스를 사용할 수 있는 TLS 포트. 기본값: 443.
--pathsHTTP/2 스트림을 열기 위한 간단한 경로 목록.
--shuffles우선순위 변경 주기 수. 안전한 테스트를 위해 낮게 유지.

테스트에 적합한 경로

가벼우며 공개적이고 영향이 적은 다음 경로를 사용하십시오:

/
/robots.txt
/favicon.ico
/health
/login

무거운 작업, 복잡한 쿼리, 보고서 생성, 업로드, 고급 검색 또는 백엔드에 부하를 발생시키는 기능을 실행하는 경로는 피하십시오.

안전한 사용 예

python3 priority_churn_probe.py --host exemplo.com.br --port 443 --paths / /robots.txt /favicon.ico --shuffles 10

예상 출력

[OK] PING antes: 45.20 ms; após churn: 52.80 ms; shuffles=10
Sinal 9513: PRIORITY frames aceitos e processados; aumento sutil pós-churn evidencia o vetor (sem DoS).

결과 해석

스크립트가 HTTP/2를 협상하고, 스트림을 열고, PRIORITY 프레임을 전송할 수 있다면 서버가 이러한 유형의 동작을 처리한다는 것을 나타냅니다.

변동 이후의 미세한 지연 시간 증가는 벡터가 존재한다는 기술적 증거로 사용될 수 있지만, 그 자체만으로 심각한 영향의 증거로 해석되어서는 안 됩니다. 최종 분류는 컨텍스트, 서버 버전, 아키텍처, 완화 조치, WAF/CDN 및 HTTP/2 구성에 따라 달라집니다.


data_dribble_probe.py

설명

data_dribble_probe.py는 HTTP/2 Data Dribble으로 알려진 CVE-2019-9511 관련 동작 검증을 위한 경량 PoC입니다.

스크립트는 TLS를 통해 HTTP/2 연결을 설정하고, 단일 스트림을 열고, 흐름 제어 창을 조작하여 소량의 데이터를 해제함으로써 DATA 프레임의 점진적 전달 동작을 시뮬레이션합니다.

스크립트가 수행하는 작업

  • ALPN을 통해 HTTP/2 협상;
  • 지정된 호스트와 TLS 연결 수립;
  • 정의된 경로에 GET 요청 전송;
  • 초기 흐름 창 조정;
  • 제어된 방식으로 소량의 데이터 해제;
  • 수신된 DATA 프레임 계산;
  • 해제된 바이트 수, 수신된 프레임 수 및 총 시간 표시.

사용 시나리오

공격적인 부하를 생성하지 않고 Data Dribble 벡터와 관련된 축소된 흐름 제어 패턴에 서버가 응답하는지 검증해야 할 때 이 스크립트를 사용하십시오.

이 스크립트는 특히 자동화된 도구가 가능한 노출을 지적하고 운영 위험을 낮추어 수동으로 검증해야 할 때 제어된 기술적 증명에 적합합니다.

변경해야 하는 필드/매개변수

스크립트는 명령줄 인수를 통해 값을 받습니다:

--host
--path
--port
--bytes

매개변수 설명

매개변수설명
--host승인된 대상의 FQDN. https://를 포함하지 마십시오.
--path테스트에서 요청할 경로.
--portHTTP/2 서비스를 사용할 수 있는 TLS 포트. 기본값: 443.
--bytes테스트 중 해제된 총 바이트 수. 안전한 검증을 위해 낮게 유지.

테스트에 적합한 경로

서버에 간단하고 정적이거나 비용이 낮은 다음 경로를 사용하십시오:

/
/robots.txt
/favicon.ico
/health
/login

데이터베이스 조회, 무거운 인증, 비동기 처리, 문서 생성 또는 내부 시스템 호출을 수행하는 엔드포인트는 피하십시오.

안전한 사용 예

python3 data_dribble_probe.py --host exemplo.com.br --path / --port 443 --bytes 12

예상 출력

[OK] HTTP/2 negociado; DATA frames recebidos: 12; bytes liberados: 12; tempo(ms): 1450
Sinal 9511: múltiplos DATA minúsculos entregues sob janela=1 (prova do caminho 'dribble' sem stress).

결과 해석

스크립트가 HTTP/2를 협상하고 흐름 창이 해제됨에 따라 작은 DATA 프레임을 수신하면 서버가 이 흐름 제어 패턴을 처리한다는 것을 나타냅니다.

이 동작은 벡터의 기술적 증거로 사용될 수 있지만, 심각도는 사용된 서버, 버전, 연결 제한, 로드밸런서, CDN, WAF, 타임아웃 및 남용 방지 조치와 같은 실제 환경 컨텍스트를 고려해야 합니다.


종속성

스크립트는 Python 3 및 h2 라이브러리가 필요합니다.

python3
pip
h2
ssl
socket
argparse

ssl, socket, time, argparse, select 라이브러리는 Python 표준 라이브러리의 일부입니다.

주요 외부 종속성은 다음과 같습니다:

h2

종속성 설치

직접 설치:

python3 -m pip install h2

가상 환경을 사용한 설치:

python3 -m venv venv
source venv/bin/activate
pip install h2

설치 확인:

python3 -c "import h2; print('h2 instalado com sucesso')"

실행 전 필요한 조정

1. HTTP/2 지원 확인

스크립트는 ALPN을 통한 HTTP/2 협상에 의존합니다.

실행 전에 서버가 HTTP/2를 지원하는지 확인하십시오:

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

예상 출력:

ALPN protocol: h2

서버가 h2를 협상하지 않으면 스크립트를 적용할 수 없습니다.


2. --host 매개변수에 FQDN만 사용

도구 다운로드