Cross Site Request Forgery

mokyoungg·2021년 2월 4일
0

store token

목록 보기
7/7

출처
https://owasp.org/www-community/attacks/csrf
https://backend-intro.vlpt.us/4/


Cross Site Request Forgery란 무엇인가?(CSRF)

OWASP 번역

사이트 간 요청 위조(CSRF)는 최종 사용자가 현재 인증된 웹 어플리케이션에서 원치 않는 작업을 강제로 실행하도록하는 공격이다.
이메일이나 채팅으로 링크를 보내는 것과 같은 소셜 엔지니어링의 약간의 도움으로, 공격자는 웹 어플리케이션의 사용자들을 속여 공격자 선택한 행동을 실행할 수 있다. 피해자가 일반 사용자인 경우 CSRF 공격이 성공하면 사용자는 자금 송금, 이메일 주소 변경 등과 같은 상태 변경 요청을 수행할 수 있다. 공격 대상자가 관리 계정인 경우, CSRF는 전체 웹 어플리케이션을 손상시킬 수 있다.

벨로퍼트 발췌

CSRF는 계정 정보를 탈취하는 것은 아니지만, 스크립트를 통하여 사이트의 외부에서 사이트의 API를 사용하는 것처럼 모방하는 것이다. 혹은, 사이트 내부에서 스크립트가 실행되어 원하지 않은 작업이 수행되게 할 수도 있다.

위키백과 발췌

사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.

공격과정

  1. 이용자는 웹사이트에 로그인하여 정상적인 쿠키를 발급받는다.
  2. 공격자는 링크를 이메일이나 게시판 등의 경로을 통해 이용자에게 전달한다.
  3. 공격용 HTML 페이지는 이미지 태그를 가진다.
  4. 이용자가 공격용 페이지를 열면, 브라우저는 이미지 파일을 받아오기 위해 공격용 URL을 연다.
  5. 이용자의 승인이나 인지 없이 출발지와 도착지가 등록됨으로써 공격이 완료된다.
    해당 서비스 페이지는 등록 과정에 대해 단순히 쿠키를 통한 본인확인 밖에 하지 않으므로
    공격자가 정상적인 이용자의 수정이 가능하게 된다.

CSRF는 XSS 처럼 토큰을 가져올 수는 없지만 사용자인것처럼 어플리케이션에 접근하고 행동할 수 있다. 따라서 쿠키에 토큰이 저장되어 있다면 이를 활용하여 사용자 행세를 하는 것이다.

profile
생경하다.

0개의 댓글