출처
https://owasp.org/www-community/attacks/csrf
https://backend-intro.vlpt.us/4/
사이트 간 요청 위조(CSRF)는 최종 사용자가 현재 인증된 웹 어플리케이션에서 원치 않는 작업을 강제로 실행하도록하는 공격이다.
이메일이나 채팅으로 링크를 보내는 것과 같은 소셜 엔지니어링의 약간의 도움으로, 공격자는 웹 어플리케이션의 사용자들을 속여 공격자 선택한 행동을 실행할 수 있다. 피해자가 일반 사용자인 경우 CSRF 공격이 성공하면 사용자는 자금 송금, 이메일 주소 변경 등과 같은 상태 변경 요청을 수행할 수 있다. 공격 대상자가 관리 계정인 경우, CSRF는 전체 웹 어플리케이션을 손상시킬 수 있다.
CSRF는 계정 정보를 탈취하는 것은 아니지만, 스크립트를 통하여 사이트의 외부에서 사이트의 API를 사용하는 것처럼 모방하는 것이다. 혹은, 사이트 내부에서 스크립트가 실행되어 원하지 않은 작업이 수행되게 할 수도 있다.
사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.
CSRF는 XSS 처럼 토큰을 가져올 수는 없지만 사용자인것처럼 어플리케이션에 접근하고 행동할 수 있다. 따라서 쿠키에 토큰이 저장되어 있다면 이를 활용하여 사용자 행세를 하는 것이다.