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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
h2spacex — HTTP/2 마지막 프레임 동기화(일명 단일 패킷 공격) Scapy 기반 저수준 라이브러리/도구 + 타이밍 공격 익스플로잇 | Kitploit
도구/GitHubGitHub/nxenon/h2spacex
Packet Sniffing & AnalysisExploitationWeb Application ExploitationWeb SecurityFuzzingNetwork SecurityPenetration TestingUtilities & FrameworksPapers & Research
GitHubnxenon/h2spacex

h2spacex

HTTP/2 마지막 프레임 동기화(일명 단일 패킷 공격) Scapy 기반 저수준 라이브러리/도구 + 타이밍 공격 익스플로잇

2291943개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기웹사이트
공유

H2SpaceX   H2SpaceX

pypi: 1.2.2 Python: 3.8.8 License: GPL v3

Scapy 기반의 HTTP/2 저수준 라이브러리로, Single Packet Attack(H2 상의 Race Condition)에 사용할 수 있습니다.

  • 이 라이브러리는 QUIC-er Races: HTTP/3 won’t save you from TOCTOU vulnerabilities라는 제목의 학술 연구의 일부였습니다.

Single Packet Attack 글 살펴보기

저는 글을 작성하여 InfoSec Write-ups에 게재했습니다:

  • Dive into Single Packet Attack

TODO

  • Single Packet Attack - POST
    • 구현
  • Single Packet Attack - GET
    • Content-Length: 1 방식
    • x-override-method: GET 헤더를 사용한 POST 요청
  • 응답 파싱
    • 구현
    • 스레드 응답 파서 구현
    • 타이밍 공격을 위한 응답 시간을 나노초 단위로 추가
    • 본문 압축 해제
      • gzip
      • br
      • deflate
  • 프록시
    • Socks5 프록시

변경 로그 및 베타 버전

  • 1.2.2

    • 패키징: 빌드 설정을 pyproject.toml로 통합하고 setup.py를 제거
      • 잘못된 [options] 섹션을 수정하여 패키지 검색이 올바르게 정의되도록 함
      • 기존 setup.py의 오타로 누락되었던 dev extra(twine)를 노출
    • 코드 정리
      • 사용하지 않는 import와 GET 요청 빌더의 중복된 헤더 정규화 호출 제거
      • GET 요청이 이제 check_headers_lowercase=False를 준수함(다른 요청 메서드와 일관성 유지)
    • tests/(헤더 유틸리티에 대한 단위 테스트)와 CONTRIBUTING.md(빌드 및 릴리스 가이드) 추가
  • 1.2.1

    • PR-6 병합
      • H2Connection용 setup_connection 구현(TLS 없음)
    • PR-7 병합
      • 정규식 대신 Parser를 사용하여 HTTP 헤더 이름 정규화
    • Issue 8 수정
      • 원시 데이터 프레임(패킷) 파싱 문제

추가 연구

다음 설명 중 일부는 아이디어일 뿐이며 테스트되거나 구현되지 않았습니다.

  • 단일 패킷에 더 많은 요청
    • MSS 증가(James Kettle의 아이디어)
    • 순서가 뒤바뀐 TCP 패킷(James Kettle의 아이디어)
    • IP 단편화
  • SOCKS를 통한 단일 패킷 요청 프록시
  • GET 요청에 대한 Single Packet Attack
    • Content-Length: 1 방식(James Kettle의 아이디어)
    • x-override-method: GET 방식(James Kettle의 아이디어)
    • GET 요청을 더 작게 만들기 위해 HPACK 헤더 인덱싱
    • END_HEADER 플래그가 없는 HEADERS 프레임
    • 일부 의사 헤더가 없는 HEADERS 프레임

설치

H2SpaceX는 Python 3(권장: >=3.8.8)에서 작동합니다

pip install h2spacex

설치 중 오류

scapy 관련 오류가 발생하면:

pip install --upgrade scapy

빠른 시작

HTTP/2 TLS 연결을 import하고 연결을 설정할 수 있습니다. 연결을 설정한 후에는 다른 작업을 수행할 수 있습니다:

from h2spacex import H2OnTlsConnection

h2_conn = H2OnTlsConnection(
    hostname='http2.github.io',
    port_number=443,
    ssl_log_file_path="PATH_TO_SSL_KEYS.log"  # optional (if you want to log ssl keys to read the http/2 traffic in wireshark)
)

h2_conn.setup_connection()
...

더 많은 예제는 Wiki 페이지를 참조하세요

예제

일부 Portswigger race condition 예제가 포함된 예제를 참조하세요.

예제 페이지

타이밍 공격을 위한 향상된 Single Packet Attack 방식(Black Hat 2024)

James Kettle은 Black Hat 2024에서 타이밍 공격을 위한 개선된 버전의 Single Packet Attack을 소개했습니다:

Impvoved Version Image

send_ping_frame() 메서드를 사용하여 이 방식을 쉽게 구현할 수 있습니다.

이 Wiki와 Parse Response (Threaded) + Response Times for Timing Attacks 부분을 참조하세요:

  • 새 방식 README (WIKI)

개선된 버전의 SPA 샘플 익스플로잇

개선된 방식 참고 자료:

  • Listen to the whispers: web timing attacks that actually work

참고 자료 및 리소스

  • James Kettle DEF CON 31 발표
  • Portswigger Research 페이지
  • HTTP/2 in Action 책

저는 이전에 개발된 라이브러리 h2tinker에서도 몇 가지 아이디어를 얻었습니다.

마지막으로, 직접 도움을 주고 다른 몇 가지 기법을 알려준 James Kettle에게 다시 한번 감사드립니다.

도구 다운로드