yuil :: SecOps

[WebSec] CSRF (Cross Site Request Forgery) 본문

Web Security

[WebSec] CSRF (Cross Site Request Forgery)

yuil.lee 2025. 10. 16. 16:45
CSRF (Cross Site Request Forgery)
**CSRF(Cross-Site Request Forgery)**는 우리말로 사이트 간 요청 위조라고 번역하며, 사용자가 원하지 않는 행동(액션)을 특정 웹사이트에 요청하도록 공격자가 속이는 웹 보안 취약점 공격 기법입니다.
이 공격은 사용자가 이미 해당 웹사이트에 로그인되어 있는 상태를 악용합니다.

CSRF의 특징

- 공격 대상(victim)은 '요청 메시지' - '서버'다. 
- 서버가 받아들이는 요청에 한해서 공격이 가능하다.
- 클릭만 해도 공격이 되게끔 할 수 있다.
- referer 헤더를 체크 안했을때도 공격할 수 있다.(referer 체크만으로 많은 공격을 막을 수 있다.)
CSRF 공격의 예

CSRF 공격은 사용자가 로그인된 상태를 악용하여, 사용자의 의지와 무관하게 웹 서버에 요청을 위조하여 보내는 공격입니다.
1. 🔍 공격 준비 및 위조 요청 생성 (Attacker)
  • **공격자(Attacker)**는 피해자가 이용하는 웹사이트(예: 은행, 게시판)에서 상태를 변경하는 기능 (예: 송금, 비밀번호 변경, 글 삭제)의 요청 구조를 파악합니다.
  • 파악한 요청 구조를 바탕으로 악성 요청 스크립트 (예: 숨겨진 <form> 태그, <image> 태그 등)를 만듭니다.
2. 🎣 피해자 유인 및 악성 페이지 노출 (Victim)
  • 공격자는 위조된 요청이 포함된 페이지(이메일, 악성 웹사이트, 혹은 취약한 게시판)를 만들어 **피해자(Victim)**에게 접근을 유도합니다.
  • 피해자가 이 페이지를 열 때, 피해자는 **공격 목표 웹 서버(Web Server)**에 이미 로그인되어 세션이 유효한 상태여야 합니다.
3. 💣 위조 요청 자동 전송 (Victim's Browser)
  • 피해자의 브라우저가 공격자가 만든 악성 페이지에 접근하는 순간, 브라우저는 해당 페이지에 포함된 위조된 요청 (예: 숨겨진 이미지 태그의 src URL)을 공격 목표 웹 서버로 자동 전송합니다.
  • 이때, 브라우저는 공격 목표 서버에 대한 유효한 **인증 정보(세션 쿠키)**를 요청에 자동으로 포함하여 보냅니다.
4. ✅ 서버의 오인 및 공격 실행 (Web Server)
  • **웹 서버(Web Server)**는 수신된 요청에 유효한 세션 쿠키가 포함되어 있으므로, 이 요청이 로그인된 피해자 본인이 의도하여 보낸 것이라고 착각합니다.
  • 웹 서버는 위조된 요청을 정상적인 요청으로 처리하고, **공격자가 의도한 행동(예: 10만 원 송금)**을 실행하게 됩니다.

 

XSS와 CSRF의 차이점

 

반응형

'Web Security' 카테고리의 다른 글

[WebSec] SQL Injection  (0) 2025.10.20
[WebSec] SQL Basic  (0) 2025.10.20
[WebSec] XSS (Cross Site Scripting)  (0) 2025.10.15
[WebSec] Web Session 관련 공격기법  (0) 2025.10.15
[WebSec] 인증 관련 공격기법  (0) 2025.10.15