상세 컨텐츠

본문 제목

CSRF

웹 해킹의 개념

by ser-ser 2025. 1. 14. 13:52

본문

CSFR (Cross-Site Request Forgery)란?

웹 애플리케이션의 취약점 중 하나로, 공격자가 사용자를 속여 원치 않는 요청을 
특정 웹 애플리케이션에 보내도록 만드는 공격입니다. 공격은 사용자의 인증 세션(쿠키, 토큰 등)을 악용해 사용자가
의도하지 않은 작업을 실행합니다

  • 핵심: 사용자의 신뢰된 인증 세션을 악용하여, 사용자 몰래 원하지 않는 요청을 실행

XSS와의 차별점

  CSRF XSS
공격 목표 용자의 신뢰를 악용해 서버에 원치 않는 요청을 보낸 사용자의 브라우저에 악성 스크립트를 실행
공격 방식 공격자가 의도한 요청을 사용자 인증 정보를 통해 실행 악성 코드를 삽입하여 사용자의 브라우저에서 실행
주요 대상 서버 (사용자) 사용자
필요 조건 사용자가 로그인 상태 (세션 or 쿠키 활성화) 사용자 입력을 제대로 검증하지 않는 취약점

CSRF가 발생하는 지점

  1. 로그인된 상태에서 요청을 처리하는 경우
    • 사용자가 로그인한 상태에서 세션 기반 인증(쿠키 등)을 사용하는 경우, 공격자는 사용자의 인증 정보를 악용할 수 있습니다.
  2. 서버가 요청의 출처를 검증하지 않는 경우
    • 서버가 요청의 Origin이나 Referer 헤더를 검증하지 않으면 공격자가 조작된 요청을 전송할 수 있습니다.
  3. 민감한 작업이 GET 요청으로 처리되는 경우

GET vs POST 요청의 차이점

GET POST
요청 파라미터가 URL에 포함됨 요청 파라미터가 HTTP본문에 포함됨
쉽게 브라우저 주소창, 링크, 이미지 등을 이용 가능 자동으로 요청하려면 스크립트 또는 폼 조작 필요
URL을 조작해 간단히 공격 가능 폼 제출, 스크립트 등을 사용해야하므로 복잡함

CSRF + XSS 연계 공격 시나리오

  1. 공격자가 XSS 취약점을 이용하여 악성 스크립트를 삽입
    • 예: 댓글 입력 창이나 검색창에 악성 스크립트를 삽입
  2. 피해자가 악성 페이지를 열면 스크립트가 자동 실행
    • 브라우저에서 악성 스크립트가 실행되고, 피해자의 인증 세션 쿠키 또는 민감한 데이터가 공격자 서버로 전송됩니다
  3. 공격자가 인증 세션 또는 민감한 데이터를 활용
    • 예: 피해자의 세션 쿠키를 탈취하여 피해자의 계정으로 서버 작업 수행

CSRF 방어 방법

  • CSRF 토큰 사용
    • 모든 민감한 요청에 대해 고유 토큰을 포함하도록 요구
    • 서버는 요청 시 토큰을 확인하여 유효성을 검증
  • 쿠키 SameSite 속성 설정
    • SameSite 속성을 Strict 또는 Lax로 설정하여 다른 출처에서 쿠키가 전송되지 않도록 제한

'웹 해킹의 개념' 카테고리의 다른 글

File Include 취약점  (1) 2025.02.07
파일 업로드 공격(File Upload Attack)  (0) 2025.01.26
HTML Entity  (1) 2024.12.31
Event Handler  (0) 2024.12.29
XSS 쿠키탈취  (0) 2024.12.21

관련글 더보기