웹 공부
CSRF
insetto:)
2023. 11. 13. 00:45
반응형
CSRF(Cross-Site Request Forgery)란?
- 조작된 파라미터 값을 서버에 요청하게 하는 공격
- 사용자의 권한으로 서비스 요청
- 조작된 url을 클릭하게 하거나, 이메일 혹은 게시글에 iframe,img 태그 등을 사용하여 공격
Cookie and Session
- 서버는 로그인 시 인증된 사용자의 정보를 세션에 저장하고, 이를 찾을 수 있는 session ID를 만듦
- 서버는 저장된 세션 정보를 클라이언트가 사용할 수 있도록 session ID를 Set-Cookie 헤더에 담아서 전달함
임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점
- 조작된 파라미터 값을 서버에 요청하게 하는 공격
- 사용자의 권한으로 서비스 요청
- 조작된 url을 클릭하게 하거나, 이메일 혹은 게시글에 iframe, img 태그 등을 사용하여 공격
Cookie and Session
- 서버는 로그인 시 인증된 사용자의 정보를 세션에 저장하고, 이를 찾을 수 있는 session ID를 만듦
- 서버는 저장된 세션 정보를 클라이언트가 사용할 수 있도록 session ID를 Set-Cookie 헤더에 담아서 전달함
- 클라이언트는 전달된 session ID를 쿠키에 저장함
- 클라이언트는 해당 도메인을 가진 서버로 요청 시 쿠키에 저장된 session ID를 자동을 전달
- 서버는 쿠키에 담긴 session ID를 통해 인증된 사용자인지 여부를 확인
CSRF 전제 조건과 공격 과정
CSRF 공격을 시도하기 위해선 몇 가지 조건이 필요
- 사용자가 보안이 취약한 서버로부터 이미 인증 받을 상태여야 함
- 쿠키 기반으로 서버 세션 정보를 획득할 수 있어야 함
- 공격자는 서버를 공격하기 위한 요청 방법에 대해 미리 파악하고 있어야 됨
공격방법
- 우선 CSRF 공격이 성공을 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행 해야함
- 이미지를 불러오는 img 태그를 사용하거나 웹 페이지에서 입력된 양식을 from 태그로 전송하는 방식이 있음
ex) img 태그를 사용한 스크립트
ex) CSRF 스크립트 예시
XSS와 CSRF의 차이
공통점
두 개의 취약점은 모두 클라이언트를 대상으로 하는 공격이며, 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야 함
차이점
가장 큰 차이점은 두 개의 공격의 목적임. XSS는 인증 정보인 세션 및 쿠키 탈취를 목적으로 하는 공격이며, 공격할 사이트의 오리진에서 스크립트를 실행시킴
반응형