728x90
이번 포스트에서는 DVWA의 CSRF 문제를 실습해보겠다.
## 공격 정의
- Cross-Site Request Forgery (CSRF) 공격은 웹사이트의 사용자가 인증된 상태에서 공격자가 생성한 요청을 실행시켜, 사용자가 의도하지 않은 행동을 하도록 하는 공격 방법
- 악성 스크립트는 희생자의 쿠키 정보를 포함하여 서버로 요청을 전송하며, 이를 통해 공격자는 희생자의 계정으로부터 권한을 탈취하거나, 비정상적인 작업을 수행하는 등의 악의적인 행위를 수행
## 공격 다이어그램
- 희생자는 인터넷 뱅킹 웹사이트에 로그인
- 이후, 희생자는 악성 웹사이트를 방문
- 악성 웹사이트는 자동으로 인터넷 뱅킹 웹사이트로 요청을 보내고, 이 때 요청에는 희생자의 쿠키 정보가 포함
- 인터넷 뱅킹 웹사이트는 쿠키 정보를 기반으로 요청을 검증하지 않고, 희생자의 의도와는 상관없이 요청을 실행
- 악성 웹사이트는 이를 통해 희생자의 계정으로부터 권한을 탈취하거나, 비정상적인 작업을 수행하는 등 악의적인 행위를 수행
## 실습
DVWA의 CSRF항목을 선택하면 아래와 같은 이미지가 보인다.
비밀번호를 변경하면 다음과 같이 URL창에 비밀번호 변경관련 파라미터와 Change라는 파라미터가 보인다. 해당 URL은 다시 말해 비밀번호 변경 HTTL 요청과 같다.
CSRF 공격은 XSS 공격이 가능한 상태에서만 수행가능하므로 다음과 같이 게시판 페이지에 CSRF 공격코드를 작성해서 올린다.
임의의 사용자가 해당 게시글을 클릭하면 비밀번호를 "abcd"로 변경해달라는 요청을 보내게 된다.
테스트를 위해 admin계정으로 해당 게시물을 클릭하고, 재로그인을 시도해보겠다.
로그인 성공, 즉 비밀번호가 성공적으로 abcd로 변경된 것 확인할 수 있다.
'Wargame > DVWA' 카테고리의 다른 글
DVWA (CSP Bypass) (0) | 2023.03.19 |
---|---|
DVWA (XSS) (0) | 2023.03.17 |
DVWA (Blind SQL Injection) (0) | 2023.03.16 |
DVWA (SQL Injection) (0) | 2023.03.15 |
DVWA (Insecure CAPTCHA) (0) | 2023.03.14 |