보안 실습

[문제 풀이] Dreamhack CSRF-2

1학년 2024. 9. 9. 17:16

드림핵 CSRF-2 문제를 풀어보자

 

문제 서버 생성 후 페이지를 들어가보자.

각 페이지들을 살펴보자.

<vuln(csrf) page>

 

xss 필터링이 적용되어있는 csrf는 가능한 페이지이다.

 

<flag>

vuln 페이지의 파라미터 값으로 칸안에 입력해서 제출할 수 있는 페이지이다.

 

<Login>

 

login할 수 있는 페이지이다.

먼저 첫  화면에서 please login이라는 문구를 확인하였으니 login을 시도해보자.

login 페이지의 코드를 살펴보면

 

사용자(username)이 존재하지 않는 경우에는 "not found user" 문구가 출력되고

 

비밀번호가 일치하지 않는 경우에는 "wrong password" 문구를 표시한다.

 

username = admin, password = admin 입력시 "wrong password" 출력 (admin이라는 사용자 존재)

 

username = user, password = user 입력시 "not found user" 출력 (user 사용자 존재x)

먼저 페이지에서는 직접적으로 보이지는 않지만, 소스코드를 확인해보면

/change_password 페이지가 있는데, "admin"의 password를 모르기 때문에 password를 변경하여 로그인해보자.

먼저 코드를 확인해보면, pw라는 변수로 password를 입력받는 것을 확인할 수 있다. 

이것을 이용해 /change_password 페이지로 admin의 비밀번호를 admin으로 변경하는 요청을 보내서 login을 다시 시도해보자.

 

flag 페이지에서 /change_password로 비밀번호를 요청을 보낸다.

<img src = '/change_password?pw=admin'> 작성 후 제출

Login 페이지에서 username=admin, password=admin 입력

flag 출력 확인

'보안 실습' 카테고리의 다른 글

[실습 기록] DVWA CSRF High Level  (0) 2025.04.04
[실습 기록] SSLH 실습  (0) 2025.03.29
[문제 풀이] Dreamhack CSRF-1  (0) 2024.09.09
[문제 풀이] Dreamhack XSS-2  (0) 2024.09.05
[문제 풀이] Dreamhack XSS-1  (0) 2024.09.05