Cross-Site Request Forgery (CSRF)

hee·2025년 5월 19일

Web hacking

목록 보기
11/11

쿠키에 있는 이용자의 식별 정보는 클라이언트에서 보내진 요청으로부터 생기며, 이는 이용자에게 권한이 부여될 수 있음을 의미합니다. 이 부분과 관련된 범죄도 증가하고 있고, 많은 서비스가 우리의 정보와 밀접하게 연관되어 있기에 더욱 조심해야합니다. 이러한 정보를 날조, 위조하는 것을 CSRF 교차사이트 요청 위조라고 정의합니다.

CSRF
이용자를 속여서, 의도하지 않은 요청에 동의하게 만드는 공격을 의미합니다. 그럴듯한 웹 페이지를 만들어서 이용자의 입력을 유도하고, 이용자가 값을 입력하면 이를 은행이나 중요한 포털사이트로 전송해 스스로 이동한 것 같은 요청을 발생시킵니다. 다시 정리해서 말하면 임의의 이용자의 권한을 이용해 임의의 주소에 HTTP 요청을 보낼 수 있는 취약점입니다.

이용자가 HTTP 요청을 보내도록 하는 방법은 다양하게 존재합니다.

CSRF동작
CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야합니다. 이는 공격자가 이용자에게 메일을 보내거나, 게시판에 글을 작성해 이용자가 조회하도록 유도합니다.
HTML 혹은 Javascript을 통해 공격 스크립트를 작성할 수 있으며 아래 사진 및 코드는 HTML로 작성한 스크립트의 예시입니다. 혹은

태그를 사용하는 방법으로 HTTP에 요청을 보내면 HTTP 헤더 쿠키에 사용자의 정보가 포홤됩니다.

XSS와 CSRF의 차이
XSS, CSRF 모두 스크립트를 웹페이지에 작성해 공격한다는 점에서 매우 유사합니다. 두 취약점의 공통점과 차이점을 비교해보자면, 우선 두 취약점 모두 클라이언트를 대상으로 하는 공격이며, 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야합니다. 반면 차이점은 두 취약점의 목적에 있습니다. XSS는 인증 정보인 세션과 쿠키를 탈취하는데에 있으며, CSRF는 이용자가 임의의 페이지에 HTTP 요청을 보내는 것을 목적으로 합니다.

0개의 댓글