Cross-Site Request Forgery : 사이트간 요청 위조

 

공격자가 피해자가 의도하지 않은 요청을 웹 사이트에 요청 하도록 하는 공격 방법이다.

공격자는 웹 사이트(대상)가 피해자를 신뢰하는 상태 이어야 한다. 

피해자의 권한을 이용하여 의도하지 않은 요청을 웹 사이트에 하는 것이다. 

공격자가 피해자에게 의도한 공격을 수행하는 스크립트를 실행하도록 한다.

웹 사이트가 피해자를 신뢰하는 상태에서 피해자가 스크립트를 실행하면 공격자가 의도한 대로 요청을 전송할 수 있다.

 

CSRF 공격 방법

웹 사이트가 HTTP 쿠키에 의해서만 사용자를 검증한다면 해당 공격에 취약할 수 있다.

웹 사이트의 동작 방식을 확인하고 어떤 요청을 했을 때 어떻게 반응하는지 등을 살펴본다.

공격자가 의도한 요청을 전송할 수 있는 html 페이지나 스크립트를 만들고, 피해자가 그 html 페이지에 접속하거나 스크립트를 실행하도록 유도한다. 이때 피해자는 웹 사이트가 신뢰하고 있는 상태여야 한다.

 

CSRF 방어 기법 

CSRF 토큰 사용 :

HTML 형태의 숨겨진 필드를 통해 추가적인 토큰을 생성하여 각 요청이 전송될 때 토큰 값이 유효한지 검증한 후 요청을 수행한다. 공격자는 토큰의 값을 결정할 수 없도록 임의의 난수로 생생해야 한다.

CAPTCHA 사용:

사용자로 부터 captcha값을 입력 받도록 하여 captcha 값을 검증 후에 요청을 수행하도록 한다.

 

'Web > Vulnerability' 카테고리의 다른 글

SSRF  (0) 2020.11.10

+ Recent posts