HTTP Connection Request Smuggling
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
์ด ํ์ด์ง๋ Browser-Powered Desync Attacks์ ๋ํ PortSwigger์ ๊ธฐ์ด ์ฐ๊ตฌ๋ฅผ ์์ฝ, ํ์ฅ ๋ฐ ์ ๋ฐ์ดํธํฉ๋๋ค. ๋ํ HTTP/2 ์ฐ๊ฒฐ ์ํ ๋จ์ฉ์ ๋ํ ํ์ ์์ ์ ๋ค๋ฃน๋๋ค. ์ด ํ์ด์ง๋ TCP/TLS ์ฐ๊ฒฐ๋น ํ ๋ฒ๋ง ์๋ณธ์ด ๊ฒฐ์ ๋๋ ์ทจ์ฝ์ ์ ์ด์ ์ ๋ง์ถ๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ณต๊ฒฉ์๋ ์ฑ๋์ด ์ค์ ๋ ํ ๋ค๋ฅธ ๋ด๋ถ ํธ์คํธ๋ก ์์ฒญ์ โ๋ฐ์ด๋ฃ์โ ์ ์์ต๋๋ค.
Connection-State Attacks
First-request Validation
์์ฒญ์ ๋ผ์ฐํ ํ ๋, ๋ฆฌ๋ฒ์ค ํ๋ก์๋ Host (๋๋ HTTP/2์ :authority) ํค๋์ ์์กดํ์ฌ ๋ชฉ์ ์ง ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๊ฒฐ์ ํ ์ ์์ผ๋ฉฐ, ์ข ์ข ์ ๊ทผ์ด ํ์ฉ๋ ํธ์คํธ์ ํ์ดํธ๋ฆฌ์คํธ์ ์์กดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฌ ํ๋ก์์์ ํ์ดํธ๋ฆฌ์คํธ๊ฐ ์ฐ๊ฒฐ์ ์ฒซ ๋ฒ์งธ ์์ฒญ์์๋ง ์ ์ฉ๋๋ ์ทจ์ฝ์ ์ด ์กด์ฌํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ณต๊ฒฉ์๋ ํ์ฉ๋ ์์ฒญ์ ๋จผ์ ์ ์กํ ํ ๋์ผํ ๊ธฐ๋ณธ ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ์ฌ ๋ด๋ถ ๊ฐ์ ํธ์คํธ์ ์ ๊ทผํ ์ ์์ต๋๋ค:
GET / HTTP/1.1
Host: allowed-external-host.example
GET /admin HTTP/1.1
Host: internal-only.example
First-request Routing
๋ง์ HTTP/1.1 ๋ฆฌ๋ฒ์ค ํ๋ก์๋ ์ ๋ฌํ๋ ์ฒซ ๋ฒ์งธ ์์ฒญ์๋ง ๊ธฐ๋ฐํ์ฌ ์์๋ฐ์ด๋ ์ฐ๊ฒฐ์ ๋ฐฑ์๋ ํ์ ๋งคํํฉ๋๋ค. ๋์ผํ ํ๋ก ํธ์๋ ์์ผ์ ํตํด ์ ์ก๋๋ ๋ชจ๋ ํ์ ์์ฒญ์ Host ํค๋์ ๊ด๊ณ์์ด ์กฐ์ฉํ ์ฌ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ค๋ ๋๋ ์น ์บ์ ์ค๋ ๊ณผ ๊ฐ์ ๊ณ ์ ์ ์ธ Host ํค๋ ๊ณต๊ฒฉ๊ณผ ๊ฒฐํฉ๋์ด ๋ค๋ฅธ ๊ฐ์ ํธ์คํธ์ ๋ํ SSRF์ ์ ์ฌํ ์ ๊ทผ์ ์ป์ ์ ์์ต๋๋ค:
GET / HTTP/1.1
Host: public.example
POST /pwreset HTTP/1.1
Host: private.internal
Tip
Burp Suite Professional โฅ2022.10์์ HTTP Request Smuggler โ Connection-state probe๋ฅผ ํ์ฑํํ์ฌ ์ด๋ฌํ ์ทจ์ฝ์ ์ ์๋์ผ๋ก ๊ฐ์งํ ์ ์์ต๋๋ค.
2023-2025์ ์๋ก์ด ๋ด์ฉ โ HTTP/2/3 ์ฐ๊ฒฐ ์งํฉ ๋จ์ฉ
ํ๋ ๋ธ๋ผ์ฐ์ ๋ ์ธ์ฆ์, ALPN ํ๋กํ ์ฝ ๋ฐ IP ์ฃผ์๊ฐ ์ผ์นํ ๋ HTTP/2 ๋ฐ HTTP/3 ์์ฒญ์ ๋จ์ผ TLS ์ฐ๊ฒฐ๋ก ์งํฉํฉ๋๋ค. ํ๋ก ํธ์๋๊ฐ ์ฒซ ๋ฒ์งธ ์์ฒญ๋ง ์น์ธํ๋ ๊ฒฝ์ฐ, ์ดํ์ ๋ชจ๋ ์งํฉ ์์ฒญ์ ํด๋น ์น์ธ์ ์์๋ฐ์ต๋๋ค โ ํธ์คํธ/:authority๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋.
์ ์ฉ ์๋๋ฆฌ์ค
- ๊ณต๊ฒฉ์๋
evil.com์ ์ ์ดํ๋ฉฐ, ์ด๋ ๋์internal.company์ ๋์ผํ CDN ์ฃ์ง ๋ ธ๋๋ก ํด์๋ฉ๋๋ค. - ํผํด์์ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฏธ
evil.com์ ๋ํ ์ด๋ฆฐ HTTP/2 ์ฐ๊ฒฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. - ๊ณต๊ฒฉ์๋ ์์ ์ ํ์ด์ง์ ์จ๊ฒจ์ง
<img src="https://internal.company/โฆ">๋ฅผ ์ฝ์ ํฉ๋๋ค. - ์ฐ๊ฒฐ ๋งค๊ฐ๋ณ์๊ฐ ์ผ์นํ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๋ ๊ธฐ์กด TLS ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ๊ณ
internal.company์ ๋ํ ์์ฒญ์ ๋ค์คํํฉ๋๋ค. - CDN/๋ผ์ฐํฐ๊ฐ ์ฒซ ๋ฒ์งธ ์์ฒญ๋ง ๊ฒ์ฆํ๋ค๋ฉด ๋ด๋ถ ํธ์คํธ๊ฐ ๋ ธ์ถ๋ฉ๋๋ค.
Chrome/Edge/Firefox์ ๋ํ PoC๋ James Kettle์ ๋ฐํ โHTTP/2: The Sequel is Always Worseโ (Black Hat USA 2023)์์ ํ์ธํ ์ ์์ต๋๋ค.
๋๊ตฌ
- Burp Suite 2023.12๋ ์๋์ผ๋ก ์งํฉ ๋ฐ TE/CL ๊ธฐ์ ์ ์๋ํ๋ ์คํ์ HTTP/2 Smuggler ์ฝ์ ์ง์ ์ ๋์ ํ์ต๋๋ค.
- smuggleFuzz (https://github.com/microsoft/smugglefuzz) โ HTTP/2 ๋ฐ HTTP/3์์ ํ๋ก ํธ์๋/๋ฐฑ์๋ ๋น๋๊ธฐ ๋ฒกํฐ๋ฅผ ๋ฌด์ฐจ๋ณ ๋์ ํ๊ธฐ ์ํด 2024๋ ์ ์ถ์๋ Python ํ๋ ์์ํฌ์ ๋๋ค.
์ํ ์กฐ์น
- ํญ์ ๋ชจ๋ ์์ฒญ์์ Host/:authority๋ฅผ ์ฌ๊ฒ์ฆํ๊ณ , ์ฐ๊ฒฐ ์์ฑ ์์๋ง ๊ฒ์ฆํ์ง ๋ง์ญ์์ค.
- CDN/๋ก๋ ๋ฐธ๋ฐ์ ๊ณ์ธต์์ ์๋ณธ ์งํฉ์ ๋นํ์ฑํํ๊ฑฐ๋ ์๊ฒฉํ๊ฒ ๋ฒ์๋ฅผ ์ง์ ํ์ญ์์ค (์: NGINX์์
http2_origin_cn๋๊ธฐ). - ๋ธ๋ผ์ฐ์ ๊ฐ ํฉ๋ฒ์ ์ผ๋ก ์งํฉํ ์ ์๋๋ก ๋ด๋ถ ๋ฐ ์ธ๋ถ ํธ์คํธ ์ด๋ฆ์ ๋ํด ๋ณ๋์ ์ธ์ฆ์ ๋๋ IP ์ฃผ์๋ฅผ ๋ฐฐํฌํ์ญ์์ค.
- ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๊ฐ ์์ฒญ ํ์ connection: close ๋๋
proxy_next_upstream์ ์ ํธํ์ญ์์ค.
์ค์ ์ฌ๋ก (2022-2025)
| ์ฐ๋ | ๊ตฌ์ฑ ์์ | CVE | ๋น๊ณ |
|---|---|---|---|
| 2022 | AWS Application Load Balancer | โ | ํธ์คํธ ํค๋๋ ์ฒซ ๋ฒ์งธ ์์ฒญ์์๋ง ๊ฒ์ฆ๋จ; ๊ท์น ์์ง ํจ์น๋ก ์์ ๋จ (SecurityLabs์ ์ํด ๊ณต๊ฐ๋จ). |
| 2023 | Apache Traffic Server < 9.2.2 | CVE-2023-39852 | CONFIG proxy.config.http.parent_proxy_routing_enable๊ฐ ์ค์ ๋์์ ๋ HTTP/2 ์ฐ๊ฒฐ ์ฌ์ฌ์ฉ์ ํตํ ์์ฒญ ์ค๋จธ๊ธ๋ง ํ์ฉ. |
| 2024 | Envoy Proxy < 1.29.0 | CVE-2024-2470 | ์ฒซ ๋ฒ์งธ ์คํธ๋ฆผ ์ดํ :authority์ ๋ถ์ ์ ํ ๊ฒ์ฆ์ผ๋ก ๊ณต์ ๋ฉ์ฌ์์ ํฌ๋ก์ค ํ ๋ํธ ์์ฒญ ์ค๋จธ๊ธ๋ง ๊ฐ๋ฅ. |
ํ์ง ์์ฝ
- ๋์ผํ TCP/TLS ์ฐ๊ฒฐ์์ ์๋ก ๋ค๋ฅธ Host ๋๋ :authority ํค๋๋ก ๋ ๊ฐ์ ์์ฒญ์ ๋ณด๋ ๋๋ค.
- ๋ ๋ฒ์งธ ์๋ต์ด ์ฒซ ๋ฒ์งธ ํธ์คํธ(์์ )์์ ๋ฐ์ํ๋์ง ์๋๋ฉด ๋ ๋ฒ์งธ ํธ์คํธ(์ทจ์ฝ)์์ ๋ฐ์ํ๋์ง ๊ด์ฐฐํฉ๋๋ค.
- Burp์์:
Repeat โ keep-alive โ Send โ Follow. - HTTP/2๋ฅผ ํ ์คํธํ ๋, ๋ฌดํดํ ํธ์คํธ์ ๋ํด ์ ์ฉ ์คํธ๋ฆผ(ID 1)์ ์ด๊ณ , ๋ด๋ถ ํธ์คํธ์ ๋ํด ๋ ๋ฒ์งธ ์คํธ๋ฆผ(ID 3)์ ๋ค์คํํ์ฌ ์๋ต์ ์ฐพ์ต๋๋ค.
์ฐธ๊ณ ๋ฌธํ
- PortSwigger Research โ HTTP/2: The Sequel is Always Worse (Black Hat USA 2023)
- Envoy Security Advisory CVE-2024-2470 โ ๋ถ์ ์ ํ ๊ถํ ๊ฒ์ฆ
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


