๐ Introduction
XST(Cross-Site Tracing)๋ HTTP TRACE Method๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด์ HttpOnly ๋ฑ์ผ๋ก ๋ณดํธ๋ ์ธ์ ์ฟ ํค๋ฅผ ํ์ทจํ๋๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
TRACE Method
TRACE Method๋ ํ ์คํธ๋ฅผ ์ํ HTTP Method ์ค ํ๋๋ก HTTP Request๋ฅผ ๊ทธ๋๋ก Response์ ํฌํจํด์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ง์น Echo ์๋น์ค์ ๋น์ทํฉ๋๋ค.
|
|
|
|
HttpOnly
Cookie ์์ฑ ์ค HttpOnly๊ฐ ์ ์ฉ๋ ์ฟ ํค๋ Javascript์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์ ํํ๊ณ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ธ์ ์ฟ ํค์ ๊ฐ์ด ์ค์ํ ์ฟ ํค๋ HttpOnly ์์ฑ์ ์ฃผ์ด XSS ๋ฑ์ ๊ณต๊ฒฉ์ ํตํด Javascript๋ฅผ ์ด์ฉํ์ฌ ์ฟ ํค์ ์ ๊ทผํ๋ ๊ฒ์ ์ฐจ๋จํ๊ธฐ ๋๋ฌธ์ ์ธ์ ์ฟ ํค๋ฅผ ๋ณดํธํ๋๋ฐ ์ข์ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.
|
|
XSS + TRACE = Leak Cookie
session์ด๋ ์ฟ ํค๊ฐ ๋ง์ฝ httponly ์์ฑ์ด๋ผ๋ฉด javascript์์ ์ ๊ทผ ์ ํด๋น ์ฟ ํค๊ฐ ๋ ธ์ถ๋์ง ์์ต๋๋ค.
|
|
์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ๋ผ๋ฉด cookie๋ฅผ ํ์ทจํ ์ ์์ง๋ง, ์๋น์ค์ TRACE Method๊ฐ ํ์ฉ๋ ๊ฒฝ์ฐ TRACE Method๋ก ์น ์์ฒญ์ ๋ฐ์์ํค๋ฉด, HTTP Request์๋ Cookie๊ฐ ์ ๋ฌ๋๊ธฐ ๋๋ฌธ์ sessionid ์ฟ ํค๊ฐ ์ ์ก๋ฉ๋๋ค. ์ด ๋ TRACE๋ Response์ Request ์ ๋ณด๋ฅผ ํฌํจํ๊ธฐ ๋๋ฌธ์ Response์ sessionid ์ฟ ํค ์ ๋ณด๊ฐ ํฌํจ๋์ด ์ ๋ฌ๋ฉ๋๋ค.
|
|
|
|
๊ฒฐ๊ตญ ๊ณต๊ฒฉ์๋ Response handling์ ํ์ฌ response ๋ด sessionid ์ฟ ํค ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
๐ก Offensive techniques
Detect
์๋น์ค์์ TRACE ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ํ์ด์ง๋ฅผ ํ์ธํ๋ฉด ๋ฉ๋๋ค. ZAP/BurpSuite์์ Method ๋ถ๋ถ์ TRACE๋ก ๋ณ๊ฒฝํ์ฌ ์ ์กํ๊ฑฐ๋ curl, httpie ๋ฑ์ cli ๋๊ตฌ์์ method๋ฅผ ์ง์ ํด ์ ์กํ๋ ํํ๋ก ์ฒดํฌํ ์ ์์ต๋๋ค.
|
|
Exploitation
XMLHttpRequet
|
|
๐ก Defensive techniques
TRACE Method๋ฅผ ๋น ํ์ฑํํ๋ฉด ๋ฉ๋๋ค.