HTTP Connection Contamination

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 ์ง€์›ํ•˜๊ธฐ

์ด ํฌ์ŠคํŠธ์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค: https://portswigger.net/research/http-3-connection-contamination. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ™•์ธํ•˜์„ธ์š”!

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ณต์œ  IP ์ฃผ์†Œ์™€ ๊ณตํ†ต TLS ์ธ์ฆ์„œ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด HTTP connection coalescing๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ๋‹จ์ผ HTTP/2+ ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” first-request routing๊ณผ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๊ธฐ์„œ ํ›„์† ์š”์ฒญ์€ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์— ์˜ํ•ด ๊ฒฐ์ •๋œ ๋ฐฑ์—”๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž˜๋ชป๋œ ๋ผ์šฐํŒ…์€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠนํžˆ ์™€์ผ๋“œ์นด๋“œ TLS ์ธ์ฆ์„œ์™€ *.example.com๊ณผ ๊ฐ™์€ ๋„๋ฉ”์ธ๊ณผ ๊ฒฐํ•ฉ๋  ๋•Œ ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, wordpress.example.com๊ณผ secure.example.com์ด ๋™์ผํ•œ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ์—์„œ ์ œ๊ณต๋˜๊ณ  ๊ณตํ†ต ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ €์˜ ์—ฐ๊ฒฐ ์ง‘ํ•ฉ์ด secure.example.com์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์ž˜๋ชป ์ฒ˜๋ฆฌ๋˜์–ด WordPress ๋ฐฑ์—”๋“œ๋กœ ์ „์†ก๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด XSS์™€ ๊ฐ™์€ ์ทจ์•ฝ์ ์ด ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์ง‘ํ•ฉ์„ ๊ด€์ฐฐํ•˜๊ธฐ ์œ„ํ•ด Chrome์˜ ๋„คํŠธ์›Œํฌ ํƒญ์ด๋‚˜ Wireshark์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ ์กฐ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

fetch("//sub1.hackxor.net/", { mode: "no-cors", credentials: "include" }).then(
() => {
fetch("//sub2.hackxor.net/", { mode: "no-cors", credentials: "include" })
}
)

์œ„ํ˜‘์€ ํ˜„์žฌ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ๋ผ์šฐํŒ…์˜ ํฌ๊ท€์„ฑ๊ณผ HTTP/2์˜ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ IP ์ฃผ์†Œ ์ผ์น˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„ํ™”ํ•˜๋Š” HTTP/3์˜ ์ œ์•ˆ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๊ณต๊ฒฉ ํ‘œ๋ฉด์„ ๋„“ํž ์ˆ˜ ์žˆ์œผ๋ฉฐ, MITM ๊ณต๊ฒฉ ์—†์ด๋„ ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„๋ฅผ ๋” ์ทจ์•ฝํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฒ” ์‚ฌ๋ก€์—๋Š” ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ๋ผ์šฐํŒ…์„ ํ”ผํ•˜๊ณ , ํŠนํžˆ HTTP/3์˜ ์ถœํ˜„๊ณผ ํ•จ๊ป˜ ์™€์ผ๋“œ์นด๋“œ TLS ์ธ์ฆ์„œ์— ์ฃผ์˜ํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณต์žกํ•˜๊ณ  ์ƒํ˜ธ ์—ฐ๊ฒฐ๋œ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ์ •๊ธฐ์ ์ธ ํ…Œ์ŠคํŠธ์™€ ์ธ์‹์€ ์›น ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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 ์ง€์›ํ•˜๊ธฐ