모의해킹/Groot - 스터디

DVWA - CSRF ( Medium, High )

잉카콜라 2023. 7. 26. 19:53

DVWA - CSRF ( Medium, High ) 입니다

 

 개요 

이 포스팅에서는 DVWA(Damn Vulnerable Web Application)   CSRF, Medium/High 단계 실습을 진행하면서 공부했던 내용에 대한 내용을 정리해 보았고, 모두 본인이 소유한 가상머신에서 실습이 이루어졌습니다

실습환경
M1 MacBook Air
16G RAM
UTM - 가상머신
Kali Linux 2023.1  - Apple Silicon (ARM64)

 

 

 목차 

1. 취약점 설명 및 분석  -  소스코드 분석, CSRF

2. CSRF 실습

3. 대응방안

 

 

 

 취약점 설명 및 분석 

 

 소스코드 분석 

CSRF - Medium.php

 

CSRF - High.php

Medium과 High로 가면서 CSRF를 막기 위해 추가적으로 요청방식 검증과 csrf token을 추가하였다

 

CSRF - test_credentials.php

비밀번호가 변경되었는지 확인하기 위해 Test Credential 버튼을 클릭해 확인할 수 있다

 

 

 CSRF 

DVWA - CSRF ( Medium, High ) 는 Referer과 user_token으로 CSRF를 막으려 하지만 아래와 같이 CSRF가 발생한다

 

 

 

 CSRF 실습 

 

 CSRF 적용하기 

CSRF - Medium

URL에 직접 링크를 입력한 뒤 전송하니 위와 같이 요청이 올바르지 않다는 경고 메시지가 뜬다

 

CSRF - Medium

dvwa 에서 xss(stored)를 이용하여 방금 입력한 URL을 이미지 태그를 이용하여 글을 저장한다

 

CSRF - Medium

위와 같이 성공적으로 저장되었다

 

CSRF - Medium

계정의 비밀번호를 password로 바꾼 것이 정상적으로 확인된다

 

 

CSRF - High

High 레벨에서는 user_token이 추가되었다

user_token은 비밀번호 변경 요청 이후 위와 같이 개발자도구에서 확인 가능하다

 

CSRF - High

변경 요청을 보내면 새로운 user_token 값을 받는다

 

CSRF - High

받은 값을 이용해 URL에 변경할 비밀번호를 입력하고 user_token값을 변경한 뒤 전송한다

 

CSRF - High

전송하면 위와 같이 비밀번호가 변경된다

 

 

 

 대응방안 

Referer 검증과 변조 불가능한 csrf token 발급한 뒤 동일출처 정책을 이용하여 CSRF를 예방할 수 있다

 

728x90