ZeroBase/CS

CSRF(Cross-Site Request Forgery)

Red_Horse 2025. 8. 8. 17:09

사용자가 의도하지 않은 요청신뢰된 웹사이트자동으로 전송하도록 유도하는 공격.
→ 사용자의 인증 정보를 악용권한 있는 요청을 위조함.

 

공격 시나리오

  1. 사용자가 bank.com에 로그인 (세션 유지)
  2. 이후 공격자가 만든 악성 사이트 (evil.com) 방문
  3. 그 사이트에는 자동으로 bank.com에 POST 요청을 보내는 코드가 숨어 있음
    → 예: "공격자의 계좌로 돈 송금"

즉, 피해자는 모르게 요청을 보냈고,
서버는 세션 기반으로 이를 정상 요청으로 처리

 

공격 전제 조건

  • 사용자가 로그인 상태이며 세션이 유효해야 함
  • 공격자는 대상 서버의 요청 방식(URL, 메서드, 파라미터)을 알아야 함
  • 요청이 자동 실행되게 피싱 페이지나 이미지, 스크립트 등에 심어야 함

방어 방법

방법 설명
CSRF 토큰 사용 폼 요청마다 고유한 토큰을 발급 → 요청 시 함께 전송되어야만 서버에서 처리
SameSite Cookie 옵션 쿠키에 SameSite=Strict 또는 Lax 설정 → 다른 사이트에서 쿠키 전송 불가
사용자 재확인 민감한 작업(예: 송금)은 비밀번호 재입력, OTP 등 추가 인증 요구
Referer / Origin 검사 요청의 Referer나 Origin 헤더를 통해 출처가 올바른지 검증
 

CSRF vs XSS

항목 CSRF XSS
목적 사용자의 권한 도용 사용자에게 악성 스크립트 주입
필요조건 사용자가 로그인 상태여야 함 취약한 웹사이트에서 실행됨
주체 공격자가 요청 조작 공격자가 코드 삽입

'ZeroBase > CS' 카테고리의 다른 글

시스템콜과 modebit  (1) 2025.08.10
운영체제와 컴퓨터 시스텀의 구조  (2) 2025.08.10
XXS(Cross-Site Scripting)  (0) 2025.08.07
HTTP 멱등성  (1) 2025.08.06
네이글 알고리즘  (0) 2025.08.05