드림핵 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 |