Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
echteeteepee — James Kettle의 (CVE-2025-32094) HTTP/1.1 must die: the desync endgame을 테스트하기 위한 Go 도구 및 Nuclei 템플릿 | Kitploit
도구/GitHubGitHub/perplext/echteeteepee
Vulnerability ScannersDynamic Analysis (Sandboxing)Web SecurityFuzzingPenetration TestingLearning & Education
GitHubperplext/echteeteepee

echteeteepee

James Kettle의 (CVE-2025-32094) HTTP/1.1 must die: the desync endgame을 테스트하기 위한 Go 도구 및 Nuclei 템플릿

저장소 보기
511년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

HTTP/1 Desync 취약점 테스트 도구

이 저장소는 PortSwigger의 James Kettle이 수행한 획기적인 연구를 기반으로 HTTP/1 요청 스머글링(desync) 취약점을 탐지하기 위한 방어적 보안 도구를 포함합니다.

연구 출처

이 작업은 다음의 기술에서 직접 영감을 받아 구현되었습니다:

  • "HTTP/1 Must Die" - James Kettle (PortSwigger Research)
    • 원본 연구: https://portswigger.net/research/http1-must-die
    • 연구자: James Kettle (@albinowax)
    • 회사: PortSwigger Web Security

이 도구에 구현된 공격 패턴, 기술 및 탐지 방법은 주요 웹 인프라 제공업체 전반에서 HTTP/1.1 프로토콜 구현의 근본적인 결함을 밝힌 James Kettle의 선구적인 연구를 기반으로 합니다.

연구 영향

James Kettle의 연구는 다음에 영향을 미치는 취약점을 입증했습니다:

  • Cloudflare, T-Mobile, GitLab, Netlify, Akamai
  • 버그 바운티로 $350,000 이상 획득
  • 웹 전반의 중요 인프라 수정으로 이어짐

개요

HTTP/1.1의 모호한 요청 경계 정의는 요청이 시작되고 끝나는 위치에 대해 James Kettle이 '극도의 모호성'이라고 부른 것을 만듭니다. 이로 인해 프런트엔드와 백엔드 서버 간의 파서 불일치가 발생하여 정교한 요청 스머글링 공격이 가능해집니다. 이러한 도구는 방어적 보안 테스트를 위해 이러한 취약점을 식별하는 데 도움을 줍니다.

포함된 도구

1. Go 테스트 도구 (http1-desync-test.go)

여러 공격 패턴을 구현한 포괄적인 HTTP/1 desync 취약점 테스터입니다.

기능

  • V-H (Visible-Hidden) Desync: Visible-Hidden 파서 불일치 테스트
  • 0.CL (Zero Content-Length) Desync: Content-Length: 0 처리 차이 악용
  • Expect Header Desync: 요청 스머글링을 위해 Expect: 100-continue 사용
  • Double-Desync: 응답 큐 포이즈닝 취약점 테스트
  • CL.TE Desync: Content-Length 대 Transfer-Encoding 충돌 테스트

설치

root@kitploit:~
# Clone the repository
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee

# Install dependencies
go mod download

# Build the tool
go build -o http1-desync-test http1-desync-test.go

사용법

root@kitploit:~
# Test all attack patterns
./http1-desync-test -target https://example.com

# Test specific attack pattern
./http1-desync-test -target https://example.com -test vh

# Enable verbose output
./http1-desync-test -target https://example.com -verbose

# Set custom timeout
./http1-desync-test -target https://example.com -timeout 10s

명령줄 옵션

  • -target: 대상 URL (필수)
  • -test: 테스트 유형: all, vh, 0cl, expect, double, clte (기본값: all)
  • -timeout: 요청 타임아웃 (기본값: 5s)
  • -verbose: 자세한 출력을 활성화하여 원시 요청/응답 확인

2. Nuclei 템플릿 (nuclei-templates/http1-desync.yaml)

HTTP/1 desync 취약점을 대규모로 탐지하기 위한 Nuclei 자동 스캐닝 템플릿입니다.

설치

root@kitploit:~
# Install Nuclei (if not already installed)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Copy template to Nuclei templates directory
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/

사용법

root@kitploit:~
# Scan single target
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml

# Scan multiple targets
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml

# Scan with rate limiting
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10

공격 패턴 설명

모든 공격 패턴은 James Kettle의 연구 결과와 입증된 익스플로잇 기술을 기반으로 합니다.

V-H (Visible-Hidden) Desync

출처: James Kettle의 "HTTP/1 Must Die" 연구
프런트엔드 프록시가 하나의 요청 경계를 보는 반면 백엔드 서버는 다른 요청 경계를 보는 불일치를 악용합니다. 공격 페이로드는 프런트엔드에는 헤더 데이터로 보이지만 백엔드에서는 별도의 요청으로 해석되는 숨겨진 요청을 포함합니다.

연구 예시: 주요 CDN 제공업체의 파서 차이를 입증하는 데 사용됨.

0.CL (Zero Content-Length) Desync

출처: James Kettle의 IIS 및 T-Mobile 취약점 발견
서버 간 Content-Length: 0 헤더의 서로 다른 해석을 활용합니다. 일부 서버는 CL=0일 때 본문을 무시하는 반면, 다른 서버는 여전히 처리하여 요청 경계 혼란을 초래합니다.

실제 영향: IIS 서버 및 T-Mobile 인프라에서 성공적으로 악용됨.

Expect Header Desync

출처: James Kettle의 T-Mobile 및 LastPass 연구
프런트엔드와 백엔드가 지속 처리를 다르게 처리하는 Expect: 100-continue 메커니즘을 악용합니다. 이는 프런트엔드가 100-continue 응답을 기다리는 동안 요청을 밀반입할 기회를 만듭니다.

연구 배경: T-Mobile 및 LastPass 인증 시스템에서 입증됨.

Double-Desync (응답 큐 포이즈닝)

출처: James Kettle의 고급 desync 방법론
여러 desync 공격을 연결하여 응답 큐를 오염시키고, 공격자가 다른 사용자가 받는 응답을 제어할 수 있도록 합니다. 이는 연구에서 가장 정교한 공격 중 하나를 나타냅니다.

중요 발견: 합법적인 사용자에게 악의적인 응답을 제공하여 완전한 사이트 장악을 가능하게 함.

CL.TE / TE.CL 충돌

출처: James Kettle의 핵심 HTTP/1.1 모호성 연구
Content-Length와 Transfer-Encoding: chunked 헤더 간의 충돌을 악용합니다. 서로 다른 서버는 이러한 헤더를 다르게 우선 처리하여 파서 불일치를 만들어 요청 스머글링을 가능하게 합니다.

기초: 이러한 충돌은 James Kettle이 HTTP/1.1 사양에서 식별한 근본적인 결함을 나타냅니다.

탐지 지표

James Kettle의 연구 방법론을 기반으로, 이 도구들은 다음을 찾습니다:

주요 지표 (원본 연구 기준)

  • 예상치 못한 404/403/401 응답: 스머글된 요청이 권한이 없는 엔드포인트에 도달했음을 나타냄
  • 관리자/제한된 경로를 포함하는 응답: 보호된 영역으로의 성공적인 요청 스머글링을 암시
  • 단일 연결에서의 여러 HTTP 응답: 응답 큐 포이즈닝의 징후
  • 파서 오류 응답 (400 Bad Request): 성공적인 desync 혼란을 나타낼 수 있음

고급 탐지 방법

  • 응답 타이밍 이상 현상: 서버 측 처리 혼란을 암시하는 지연
  • Content-Length 불일치: 잘못된 본문 길이를 가진 응답
  • 헤더 주입 흔적: 응답에 스머글된 헤더의 증거
  • 캐시 포이즈닝 지표: 다른 사용자에게 영향을 미치는 예상치 못한 캐시된 응답

취약점 심각도 평가

James Kettle의 영향 분류에 따라:

  • 심각: 사용자 가장을 가능하게 하는 응답 큐 포이즈닝
  • 높음: 관리자 엔드포인트로의 요청 스머글링
  • 중간: 익스플로잇 증명이 없는 파서 불일치
  • 낮음: 보안 영향이 없는 양성 desync 동작

책임 있는 사용

이 도구는 다음을 위해 설계되었습니다:

  • 승인된 시스템에 대한 방어적 보안 테스트
  • 적절한 권한이 있는 취약점 평가
  • 통제된 환경에서의 보안 연구

이 도구를 사용하지 마십시오:

  • 소유하지 않거나 테스트 권한이 없는 시스템에 대해
  • 악의적인 목적이나 무단 접근을 위해
  • 적절한 예방 조치 없이 프로덕션 환경에서

기술 구현 세부사항

연결 관리

James Kettle의 방법론에 따라, 이 도구는 desync 조건을 적절히 테스트하기 위해 지속적인 HTTP/1.1 연결을 유지합니다. 각 테스트는 단일 TCP 연결을 생성하고 여러 요청을 전송하여 파싱 차이를 관찰합니다.

요청 구성

공격 페이로드는 James Kettle이 자신의 연구에서 사용한 정확한 패턴을 기반으로 신중하게 구성되어, 그가 문서화한 서버 동작과의 호환성을 보장합니다.

응답 분석

탐지 로직은 James Kettle이 $350K+ 버그 바운티 연구에서 성공적인 desync 공격을 식별하는 데 사용한 동일한 지표를 구현합니다.

취약점 영향 및 수정

James Kettle의 발견 및 권장 사항 기반:

영향 범주

  1. 완전한 사이트 장악: 응답 큐 포이즈닝을 통해
  2. 자격 증명 도용: 인증 엔드포인트로의 요청 스머글링을 통해
  3. 캐시 포이즈닝: 합법적인 사용자에게 악의적인 콘텐츠 제공
  4. 권한 상승: 스머글된 요청을 통해 관리자 엔드포인트 접근

수정 전략 (James Kettle 제안)

  1. 기본 해결책: 업스트림 연결을 HTTP/2로 마이그레이션
  2. 중간 단계: HTTP 요청 정규화 활성화
  3. 탐지: 정기적인 desync 취약점 스캐닝 배포
  4. 모니터링: 연결 수준 이상 탐지 구현

테스트 권장 사항

  • 서비스 중단을 피하기 위해 유지 관리 창에 테스트
  • 프로덕션 시스템 스캔 시 속도 제한 사용
  • 대규모 테스트 전에 보안 팀과 조정
  • James Kettle의 취약점 분류를 사용하여 결과 문서화

참고 자료 및 크레딧

주요 연구

  • "HTTP/1 Must Die" - James Kettle (PortSwigger Research)
    https://portswigger.net/research/http1-must-die
  • "HTTP Desync Attacks: Request Smuggling Reborn" - James Kettle
    https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn
  • Black Hat USA 2019 발표 - James Kettle
    "HTTP Desync Attacks: Smashing into the Cell Next Door"

추가 자료

  • HTTP Request Smuggling - PortSwigger Academy
  • Burp Suite HTTP Request Smuggler Extension
  • CWE-444: Inconsistent Interpretation of HTTP Requests

도구 크레딧

  • James Kettle (@albinowax): 원본 연구 및 공격 방법론
  • PortSwigger: 연구 출판 및 HTTP Request Smuggler 도구
  • ProjectDiscovery: Nuclei 스캐닝 프레임워크

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조

면책 조항

이 도구는 교육 및 방어적 보안 목적으로만 제공됩니다. 사용자는 시스템을 테스트하기 전에 적절한 권한이 있는지 확인할 책임이 있습니다. 저자는 이 도구의 오용이나 이로 인한 손해에 대해 어떠한 책임도 지지 않습니다.

도구 다운로드