일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Android 취약점진단
- graphiql
- APP 진단
- 취약점진단
- android hooking
- so hooking
- gdb debug
- firebasescanner
- http request smuggling
- trace cipher
- 취약점
- trace intent
- native code hooking
- hooking script
- Android
- 보안진단원
- Frida
- 무결성 검증 우회
- actuator heapdump
- source map
- without frida
- digest hooking
- Firebase 취약점
- 휴대폰 번호 변조
- gdb memory dump
- actuator endpoint
- Firebase Real-time Database
- actuator env
- spring boot 취약점
- gdb 메모리 덤프
- Today
- Total
Und3r__Score__
H2.0 Request Smuggling (Request Smuggling via HTTP/2 Downgrades) 본문
H2.0 Request Smuggling (Request Smuggling via HTTP/2 Downgrades)
_underscore_ 2024. 2. 14. 21:22Advanced request smuggling | Web Security Academy
In this section, we'll build on the concepts you've learned so far and teach you some more advanced HTTP request smuggling techniques. We'll also cover a ...
portswigger.net
HTTP/2: The Sequel is Always Worse
In this research paper James Kettle introduces multiple new classes of HTTP/2-exclusive attacks, demonstrated on popular websites and servers.
portswigger.net
CL.0 request smuggling | Web Security Academy
Request smuggling vulnerabilities are the result of discrepancies in how chained systems determine where each request starts and ends. This is typically due ...
portswigger.net
HTTP/2 Message Length
BurpSuite에서는 볼 수 없지만 HTTP/2 메시지는 여러 개로 나누어진 프레임을 통해 전송되며, 각 프레임의 앞에는 길이 필드가 존재합니다. 즉, 요청의 길이는 프레임들의 길이 합입니다.
일반적인 Request smuggling은 기본적으로 서로 다른 서버가 요청의 길이를 서로 다르게 해석하는 것을 이용하는 공격 기법인데, HTTP/2는 Content-Length 또는 Transfer-Encoding 요청 헤더를 사용하여 요청의 길이를 해석하는 것이 아니기 때문에 Request Smuggling에 방어책으로 언급되기도 하였습니다. 하지만 HTTP/2 다운그레이드를 이용한다면 HTTP/2에서도 Request Smuggling이 가능합니다.
HTTP/2 Downgrading
클라이언트와 프론트엔드 서버가 HTTP/2를 사용하지만, 프론트엔드 서버가 요청을 백엔드 서버에 전달하기 전에 동등한 HTTP/1.1로 다시 생성하는 것을 HTTP/2 다운그레이드라고 합니다. HTTP/2은 요청 헤더에 길이를 필수로 지정할 필요가 없습니다. 그렇기 때문에 다운그레이드하는 동안 Content-Length 헤더를 추가하거나 HTTP/2 요청의 Content-Length 헤더를 단순히 재사용합니다.
HTTP/2 다운그레이드 시에 Content-Length 또는 Transfer-Encoding 헤더를 사용해야 하는데, 이로 인해 대표적으로 H2.TE와 H2.CL 두 가지 취약점이 발생합니다.
* 해당 게시글에서는 H2.0 Request Smuggling 취약점에 관련해서만 다루었습니다.
CL.0 Request Smuggling
H2.0 Request Smuggling을 이해하기 위해 CL.0 Request Smuggling을 먼저 언급하도록 합니다. CL.0 Request Smuggling은 백엔드 서버에서 요청의 Content-Length 헤더를 무시하는 경우에 발생하는 취약점입니다.
CL.0 Request Smuggling은 다른 요청이 포함된 첫번째 요청을 보낸 다음 일반적인 두번째 요청(GET / HTTP/1.1)을 보내고, 두번째 요청에 대한 응답이 첫번째 요청에서 Smuggling된 요청(GET /hopefully404 HTTP/1.1)에 영향을 받았는지 확인합니다.
Request
POST /vulnerable-endpoint HTTP/1.1
Host: vulnerable-website.com
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
GET /hopefully404 HTTP/1.1
Foo: x
GET / HTTP/1.1
Host: vulnerable-website.com
HTTP/1.1 200 OK
HTTP/1.1 404 Not Found
H2.0 Request Smuggling
진단 예시 CASE


'취약점진단 > WEB' 카테고리의 다른 글
Security risks of source map (webpack) (0) | 2024.02.27 |
---|---|
GraphQL API vulnerabilities (0) | 2024.02.26 |
Spring Boot Actuator Misconfiguration (0) | 2024.02.20 |
Insecure Deserialization (0) | 2024.02.14 |