Archive for Dev. (junyup2)

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

Wargame & CTF/SegFault

[SegFault] (CSRF) - GET Admin 2

Gearvirus(junyup2) 2024. 1. 17. 23:08

[SegFault] (CSRF)

GET Admin 2

admin ๊ณ„์ •์„ ํƒˆ์ทจํ•ด ๋กœ๊ทธ์ธํ•˜๋ฉด, flag๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํŒŒ์•…

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ CSRF ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์›ํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ , ๊ด€๋ฆฌ์ž visit Bot์— ํ•ด๋‹น ๋งํฌ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ admin ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•ด๋‹น ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด flag๊ฐ€ ๋‚˜์˜ค๋„๋ก ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

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

 

 

ํšŒ์›๊ฐ€์ž…ํ•œ id์˜ ๋’ค์— _amdin์„ ๋ถ™์—ฌ๋„ฃ์€ id๊ฐ€ ๊ณต๊ฒฉํ•  id ์ด๋‹ค.

ex) gear -> gear_admin

๊ณต๊ฒฉํ•  ์•„์ด๋””์™€ CSRF ๊ณต๊ฒฉ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” URL์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์•„์ด๋””์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฒŒ ๋œ๋‹ค.

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

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

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” CSRF ๊ณต๊ฒฉ์„ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ์šฐ์„  ๋งˆ์ดํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€์„œ ๋น„๋ฐ€๋ณ€๊ฒฝ์„ ์‹ค์ œ๋กœ ์‹œ๋„ํ•ด๋ณด๊ณ  ๊ทธ ๊ณผ์ •์„ ํ™•์ธํ•ด๋ณธ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๊ณผ์ •์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ด๋ณด๊ณ  ์ด๋ฅผ Burp๋ฅผ ํ†ตํ•ด ํ™•์ธํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์š”์ฒญ์„ ๋ณด๋ฉด pw ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ณ€๊ฒฝํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž…๋ ฅ๋˜์–ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดํ›„์˜ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ์„ ์š”์ฒญํ•˜๋ฉด, ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ๋œ ํ›„, ๋กœ๊ทธ์•„์›ƒ์ด ์ง„ํ–‰๋˜๊ณ  ์ดˆ๊ธฐํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ„๋‹ค.

 

CSRF Point (์ธ์ฆ ์ •๋ณด)

์œ„์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋ณด๋ฉด, ์ถ”๊ฐ€์ ์œผ๋กœ ์ธ์ฆํ•˜๋Š” ์ธ์ฆ์ •๋ณด ์—†์ด ๋ณ€๊ฒฝ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

XSS Point

XSS๋ฅผ ํ™œ์šฉํ•˜์ง€ ์•Š๋Š” CSRF ์ทจ์•ฝ์ ์€ URL์„ ํด๋ฆญํ•˜๋„๋ก ์œ ๋„ํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ XSS ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์ œ๋กœํด๋ฆญ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ณต์ง€์‚ฌํ•ญ์˜ ๊ธ€์“ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ XSS๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ๋ฌธ์ž< ' " >๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ™•์ธํ•ด๋ณธ๋‹ค.

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


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

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

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

<iframe name="stealthFrame" sandbox="allow-scripts" style="display:none"></iframe>
<body onload="document.getElementById('tempForm').submit();">
<form method="POST" action="http://ctf.segfaulthub.com:7575/csrf_2/mypage_update.php" id="tempForm" target="stealthFrame">
<input type="hidden" name="pw" value="1234">
</form>

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

 

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

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

ํ•ด๋‹น ๊ธ€์„ ์ฝ๊ธฐ ์œ„ํ•ด ์ ‘๊ทผํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ๋‚ด์šฉ์— ์•„๋ฌด ๊ฒƒ๋„ ๋œจ์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ Burp๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ดํ›„์˜ ๊ณผ์ •์„ ์‚ดํŽด๋ณด๋ฉด allow-scripts ๋ฅผ ์ด์šฉํ•จ์œผ๋กœ์จ ๊ธฐ์กด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ๊ณผ ๊ฐ™์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ณ€๊ฒฝ, ๋กœ๊ทธ์•„์›ƒ, ์ดˆ๊ธฐํŽ˜์ด์ง€๋กœ์˜ ๋ฆฌ๋””๋ ‰์…˜์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

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

์ดํ›„ ๋กœ๊ทธ์•„์›ƒ์„ ํ•˜๊ณ  ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ์˜ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•œ๋‹ค.

๊ด€๋ฆฌ์ž ๊ณ„์ •์„ ๋ณ€๊ฒฝ์‹œํ‚จ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธ๋˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ฆผ์ฐฝ์— Flag๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ์˜ ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด flag๊ฐ’์ด ํš๋“๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


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

๋ณธ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ์— ์žˆ์–ด ์ถ”๊ฐ€์ ์ธ ์ธ์ฆ์ •๋ณด ์—†์ด ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ฐœ์ƒํ•œ CSRF ์ทจ์•ฝ์ ์ด๋‹ค.
๋˜ํ•œ ๊ฒŒ์‹œ๊ธ€์˜ ๋‚ด์šฉ์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž… ๊ฐ€๋Šฅํ•œ XSS ์ทจ์•ฝ์ ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ CSRF(with XSS) ์ทจ์•ฝ์ ์œผ๋กœ์„œ ์ด์šฉํ•œ๋‹ค.
CSRF๋Š” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฝ์ž…๋œ ๊ธ€์— ์ ‘๊ทผํ•˜๋Š” ๋ชจ๋“  ์ด์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ•์ œ๋กœ ๋ณ€๊ฒฝ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜ํ•œ ์ทจ์•ฝ์ ์œผ๋กœ์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ๊ณผ ๊ฐ™์€ ์ค‘์š”์ •๋ณด์— ๋Œ€ํ•˜์—ฌ ์ ‘๊ทผ์‹œ ์ถ”๊ฐ€์ ์ธ ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.

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