CSRF (Cross-Site Request Forgery)
CSRF 공격은 인증 된 사용자 (피해자)가 피해자의 세션 쿠키를 포함한 위조 된 HTTP 요청을 취약한 웹 애플리케이션에 보내도록하여 공격자가 피해자의 브라우저가 취약한 앱이 다음의 합법적 인 요청으로 인식하는 요청을 생성하도록 할 수 있도록합니다. 피해자.
간단한 다이어그램을 통해이 결함의 위협 원, 공격 벡터, 보안 약점, 기술적 영향 및 비즈니스 영향을 이해하겠습니다.
예
다음은 CSRF의 전형적인 예입니다.
Step 1 − 취약한 애플리케이션이 암호화없이 일반 텍스트로 상태 변경 요청을 전송한다고 가정 해 보겠습니다.
http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243
Step 2 − 이제 해커는 공격자가 제어하는 다양한 사이트에 저장된 이미지에 요청을 삽입하여 피해자의 계정에서 공격자의 계정으로 돈을 이체하는 요청을 구성합니다.
<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#"
width = "0" height = "0" />
손에
Step 1− 이미지에 자바 스크립트를 삽입하여 CSRF 위조를 수행해 보겠습니다. 문제의 스냅 샷은 다음과 같습니다.
Step 2 -이제 전송을 1x1 이미지로 모의하고 피해자가 동일한 이미지를 클릭하도록해야합니다.
Step 3 − 메시지 제출시 아래 강조 표시된 메시지가 표시됩니다.
Step 4− 이제 피해자가 다음 URL을 클릭하면 전송이 실행되며, Burp Suite를 사용하여 사용자의 동작을 가로채는 것을 확인할 수 있습니다. 아래와 같이 Get 메시지에서 전송을 확인할 수 있습니다.
Step 5 − 이제 새로 고침을 클릭하면 레슨 완료 표시가 나타납니다.
예방 메커니즘
CSRF는 노출되기 쉬운 URL이 아닌 HTTP 요청의 본문으로 전송되는 숨겨진 필드에 고유 한 토큰을 생성하여 방지 할 수 있습니다.
CSRF를 보호하기 위해 사용자에게 재 인증을 강요하거나 사용자임을 증명합니다. 예 : CAPTCHA.