https://dreamhack.io/wargame/challenges/442
CSRF Advanced
Description Exercise: CSRF Advanced에서 실습하는 문제입니다. 문제 수정 내역 2023.08.08 Dockerfile 제공
dreamhack.io
CSRF 취약점을 이용하는 문제이다.
가상머신에 접속하면 네 종류의 페이지가 있다.
please login을 보면 로그인을 하라는 건가 싶다.
문제 코드를 살펴보면
guest로 로그인할 수 있고, admin으로 로그인하면 플래그를 얻을 수 있는 것 같다.
우선 guest 계정으로 로그인 했다.
login()에서 로그인이 성공했을 때, 세션과 csrf 토큰을 얻을 수 잇는 것을 알 수 있다.
usernaem+addr의 값을 md5 연산하면 토큰을 구할 수 있다.
change_password()에서 csrf_token을 비교하는 조건이 있다.
찾은 토큰 값과 변경하고자 하는 비밀번호를 같이 넣어주면
admin의 비밀번호를 바꿀 수 있는 것 같다.
MD5 해시 생성기를 이용해서 토큰 값을 구했다.
이 토큰 값을 이용해서 flag 페이지에 넘겨줄 것이다.
<image src="/change_password?pw=admin&csrftoken=7505B9C72AB4AA94B1A4ED7B207B67FB">
플래그 페이지에 위 태그를 입력해줬다.
그리고 변경한 pw인 admin으로 로그인 했다.
플래그가 출력됐다!
참고
'CTF > Dreamhack' 카테고리의 다른 글
[Dreamhack] Reversing Basic Challenge #2 (0) | 2024.03.30 |
---|---|
[Dreamhack] Reversing Basic Challenge #1 (0) | 2024.03.23 |
[Dreamhack] csrf-1 (1) | 2023.11.22 |
[Dreamhack] set-int (0) | 2023.11.15 |
[Dreamhack] csrf-2 (0) | 2023.11.15 |