[dreamhack Wargame] CSRF Advnaced

흑흑코더·2023년 4월 4일
0

🤓 문제 정보

CSRF Advanced에서 실습하는 문제입니다.

✨ 풀이


문제에 접속하면 위와 같은 페이지가 뜬다.


제공된 파이썬 파일을 보면 위와 같이 게스트 계정으로 로그인을 할 수 있다.
우리의 목표는 저 플래그!
일단 게스트 계정으로 로그인을 해주었다.


짜잔
저번에 푼 CSRF문제처럼 flag페이지에 스크립트를 날려봤지만
Advanced 문제 답게 먹히지 않았다.

다시 파이썬 파일을 살펴보자

/change_password 페이지에서 csrf_token을 비교하는 조건이 하나 더 달려있다.

SCRF token이란?
서버에서 생성, 사용자의 세션과 연관되어 요청과 함께 해당 토큰이 함께 전송됨
서버에서 요청을 받을 때마다 유효성을 검증
=> 공격자가 위조한 요청을 서버에서 거부할 수 있도록 함


로그인 페이지의 코드를 살펴보면 token을 만드는 수식이 노출되어 있다.
바로 이 점이 이번 문제의 취약점인듯 하다.

usernaem+addr의 값을 md5연산하면 토큰을 구할 수 있다.
온라인 MD5 해시 생성기를 찾아 토큰을 구해 보았다.


이제 이 값을 복사해서 /flag 페이지에 파라미터 값을 채우는 데 이용해 보자
비밀번호를 변경하면서 토큰을 확인하므로 토큰 값을 넘겨주기만 하면된다.

<image src="/change_password?pw=admin&csrftoken=7505B9C72AB4AA94B1A4ED7B207B67FB">와 같이 입력해 주었고
제출 한 뒤 변경한 비밀번호로 로그인하면

플래그를 얻을 수 있었다!!

웹해킹 오랜만에 푸니까 재미있다.
웹은 가끔씩 해야 재미있는듯 🤓💭

profile
공부합시다

0개의 댓글