Cross Site Request Forgery(사이트 간 요청 위조)는 사용자가 인증된 상태에서 공격자가 의도한 요청을 자동으로 수행하게 만드는 공격이다. 예를 들어, 사용자가 은행 웹사이트에 로그인한 상태에서 악성 웹페이지를 방문하면, 해당 페이지의 스크립트가 사용자의 권한으로 은행에 돈을 이체하는 요청을 보낼 수 있다.
CSRF 공격은 다음과 같은 과정을 통해서 이루어진다.
1. 사용자 로그인: 사용자가 웹사이트에 로그인하면, 브라우저는 세션을 유지하기 위해 쿠키를 저장한다.
2. 악성 사이트 방문: 사용자가 공격자가 만든 악성 웹페이지를 방문한다.
3. 자동 요청 전송: 악성 페이지의 스크립트가 사용자의 브라우저를 통해 웹사이트에 요청을 보낸다. 이때, 브라우저는 저장된 쿠키를 함께 전송한다.
4. 서버 처리: 웹사이트는 쿠키를 기반으로 요청을 인증된 사용자로 인식하고, 요청을 처리한다.
이러한 방식으로 공격자는 사용자의 권한을 악용하여 원하지 않는 작업을 수행할 수 있다.
DVWA CRSF 창에서 패스워드 변경 요청이 어떤 방식으로 웹 서버에 전송되는지 확인하기 위해 Burp suite를 이용해서 패킷을 스니핑한 결과

패스워드 변경 텍스트란에 입력한 값이 password_new, password_conf 파라미터에 저장되고 change 파라미터와 함께 GET 메소드를 이용하여 서버에 전송되는 것을 확인할 수 있다.
해당 요청 정보를 이용해 공격자는 피해자에게 자신이 원하는 패스워드가 설정된 URL을 전달한다.
전달된 URL로 접속했을때 패스워드 변경 요청이 웹 서버로 전송되게 되어 계정의 패스워드가 공격자가 원하는 패스워드로 변경된다.