
Burp Suite 확장 기능으로, 요청을 가로채 HTTP/3로 전송하고 응답을 Burp용으로 변환하며, kettled 요청과 HTTP/3 기능 검사를 지원합니다.
HTTP/3를 통해 요청을 전송하는 Burp Suite 확장 기능입니다.
Burp는 HTTP/3를 기본적으로 지원하지 않습니다. 이 확장 기능은 HTTP/3 스택을 구현하고, 모든 요청을 가로채어 HTTP/3로 변환하여 전송한 뒤, 응답을 Burp가 이해할 수 있는 HTTP 버전으로 다시 변환합니다.
BAPP Store에서 사용할 수 있습니다.
직접 빌드하기:
./gradlew jar # -> build/libs/HTTP3-Adapter-0.0.1.jar
Explicit HTTP/3 only 모드에서는 X-Http3 헤더를 추가하세요:
GET /admin HTTP/1.1
Host: example.com
X-Http3: 1
Always HTTP/3 where possible 모드에서는 애플리케이션이 HTTP/3를 지원하는 경우 모든 트래픽이 변환됩니다.
프록시 기록에 있는 여러 호스트가 HTTP/3를 지원하는지 알고 싶다면, 해당 호스트들을 선택하고 Check HTTP/3 Support 컨텍스트 메뉴 옵션을 사용하면 organizer에 보고됩니다.
Settings -> Extensions -> HTTP/3 Adapter
이 탭은 HTTP/3 QUIC 핸드셰이크에 실패한 호스트를 보여줍니다. 연결이 불안정한 경우 이 목록을 지우고 다시 시도할 수 있습니다. 이 탭은 기본적으로 숨겨져 있지만 설정 패널에서 활성화할 수 있습니다.
HTTP/2에서와 마찬가지로 요청을 kettled할 수 있습니다.
X-Http3: 1 헤더와 함께 X-Kettled: 1 헤더를 추가하면 헤더 블록이 작성된 그대로 정확히 전송됩니다. 이름은 대소문자를 유지하고, 아무것도 제거되지 않으며, Host는 :authority로 병합되지 않고, 다음 이스케이프는 먼저 디코딩됩니다:
POST /x HTTP/1.1
X-Http3: 1
X-Kettled: 1
:method: BREW
content-length: 10
foo: bar^~transfer-encoding:^schunked
0
hello
| Setting | Default | Notes |
|---|
| Mode | Explicit HTTP/3 only | 위에서 언급한 두 모드 간 전환 |
| Handshake timeout (ms) | 10000 | |
| Request timeout (ms) | 15000 | |
| Reuse connections | on | |
| Log exchanges to Output | off | 변환된 각 요청과 응답을 Output 패널에 기록합니다. |
| Show unsupported origins tab | off | 아래를 참조하세요. |
Strip Connection, Keep-Alive, Proxy-Connection, Transfer-Encoding, Upgrade | on | HTTP/3는 이 헤더들을 금지합니다. 의도적으로 전송하려면 체크를 해제하세요. |
| Verify TLS certificates | off | 기본적으로 Burp 자체의 업스트림 동작과 일치합니다. |
| Escape | Byte |
|---|
^~ | CR LF |
^r | CR |
^n | LF |
^0 | NULL |
^s | space |
^xNN | any byte, two hex digits |
^^ | a literal ^ |