Background : CSRF

sirseo·2023년 1월 5일
0

DH_Web#1

목록 보기
6/13

CSRF

  • CSRF는 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점
  • 동작하기 위해서 공격자의 악성 스크립트를 이용자가 실행해야 한다
    -> 공격자가 메일을 보내거나 글을 작성해 이용자가 조회하도록 유도
  • XSS와 동일하게 클라이언트 대상 공격이며 악성 스크립트 페이지 접속을 유도해야 한다
  • 하지만 CSRF는 이용자가 임의 페이지에 HTTP 요청을 보내게 하는 것이 목표!

❗Security

  • Referrer 검증을 통해 백엔드 단에서 domain 일치 여부를 확인하여 방어 가능하지만 동일 도메인 내의 페이지에 XSS 취약점이 있다면 여전히 취약
  • CSRF Token 사용을 통해 대부분 방어가 가능하지만 마찬가지로 동일 도메인 내 XSS 취약점 존재 시 취약

❗Detour

  • POST 메시지에 대해서만 CSRF 검증을 하는 경우(GET으로 요청 보냈더니 요청 받아짐)
  • CSRF Token 검증할 때 값을 비교하는게 아니라 존재 유무로 검증하는 경우(아무 token 넣었더니 우회)
  • 다른 사람의 Token을 넣었는데 우회가 되는 경우(세션과 token이 묶여있지않음)
  • 이미 사용된 Token이 재사용 되는 경우
  • Token을 POST 메세지 본문과 쿠키에 같이 전송되서 그 둘이 같은지 검사하는 경우(페이지에 쿠키를 설정하는 기능이 존재 한다면 쿠키에 아무 token을 넣고 csrf 페이로드에 같은 token을 넣어두면됨)
  • Referer 헤더가 존재하는지만 검증하는 경우
  • Referer 헤더 검증시 단순히 URL에 문자열 포함여부만 확인하는 경우(공격자가 개인서버 도메인에 타겟 도메인을 서브도메인으로 사용할 경우 우회가능)
  • XSS 취약점이 존재해서 Token이 탈취되는 경우 등

0개의 댓글