공부/웹해킹 (Web hacking)

[드림핵 | 웹해킹] LEVEL 1: session-basic

eunjuu 2023. 9. 22. 19:51
728x90

👾 문제 설명

쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다.
admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다.

플래그 형식은 DH{…} 입니다.

📎 https://dreamhack.io/wargame/challenges/409

 

session-basic

Description 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{...} 입니다. Reference Background: Cook

dreamhack.io


접속 정보에 "서버 생성하기"를 눌러서 링크에 접속한다. 

 

하이퍼링크를 누르면 이런 페이지가 등장한다!

문제 파일 받기
app.py 등장

 

문제 파일도 다운로드 받는다. app.py 파일이 등장한다.

 

🔎 코드를 분석해보겠다!

 

 

아이디와 비밀번호가 딕셔너리 형태로 정의되어 있다.

guest와 user의 아이디와 비밀번호가 나와있고, admin 비밀번호는 FLAG 값으로 정해진 것으로 알 수 있다.

 

 

admin 계정의 세션 ID를 탈취하여 로그인하면 FLAG 값을 얻을 수 있을 것 같다.

 

username : guest
password : guest

 

로그인을 해보았다.

 

 

이렇게 guest 계정으로 로그인했더니 이런 메시지가 떴다.

 

 

개발자 도구를 들어가면 sessionid라는 쿠키값이 생긴 것을 확인할 수 있다.

 

 

코드를 더 살펴보자. /admin이라는 페이지에 접속할 수 있는 함수가 있다. session_storage 값을 반환하는 것 같다.

 

 

admin 세션값을 발견했다.

 

기존 세션값 지우고 다시 채우기

다시 개발자 도구로 들어가서 sessionid의 세션 값을 바꾸어주었다.

그리고 새로고침을 했더니 FLAG 값 등장!

 

728x90