W8_H2_CSRF 공격

·2023년 5월 23일
post-thumbnail

💻 CSRF(Cross Site Request Forgery) attack

사이트 간의 요청 위조를 말한다. 공격자가 이용자의 권한을 이용해 웹사이트에서 악의적인 행위를 하는 공격

📋 CSRF 공격 시나리오

  • 사용자가 보안이 취약한 서버에 로그인
  • Session ID가 사용자의 브라우저 쿠키에 저장
  • 사용자가 공격자가 미리 심어둔 악성 스크립트 페이지에 들어감
    ex) 악성 스크립트가 포함된 게시글, 악성 스크립트가 삽입된 페이지 링크 등
  • 사용자가 악성 스크립트가 작성된 페이지 접근 시, 악성 스크립트로 인해 사용자의 Session ID가 요청 행위와 함께 브라우저로 넘어가게 함
  • 서버는 쿠키에 담긴 Session ID로 해당 요청이 사용자의 요청이라고 판단
// 공격용 HTML 페이지
<img src='http://공격주소' width=0px height=0px>

사용자가 악의적 스크립트가 삽입된 페이지에 방문 시, 브라우저는 이미지를 받아오기 위해 공격 URL을 열게 된다. 이 때 공격 페이지는 가로, 세로 0으로 사용자의 눈에 보이지 않기 때문에 인지 없이 공격이 완료된다.

CSRF 예방

  • Security Token 유효성 검증
    : 웹 쉴(WebSEAL)에다 특정 관리 조작 요청에는 비밀 토큰이 포함되도록 구성하고, 이를 이용해 인증의 유효성을 검증한다.
  • Referer 유효성 검증
    : 수신 HTTP 요청에 referer 헤더와 allowed-referers 목록을 비교하여 유효성을 검사한다.
  • 요청되지 않은 인증 요청 거부

XSS와 CSRF 비교

  • XSS와 CSRF 모두 클라이언트 대상 공격으로, 이용자가 악성 스크립트가 삽입된 페이지에 접속해야 함
  • XSS는 세션과 쿠키 탈취를 목적으로, 공격 사이트 origin에서 스크립트 실행
  • CSRF는 이용자가 HTTP 요청을 보내는 것을 목적으로 하는 공격. 악성 스크립트가 포함된 페이지에 접근하는 이용자의 권한으로 다른 웹 서비스의 기능을 실행시키는 것이 가능함

🤍 참고자료

profile
화이트해커 엘입니다😉

0개의 댓글