본문으로 바로가기

session-basic 문제풀이

category 모의해킹/Dreamhack Wargame 2025. 10. 24. 17:00
728x90

문제 설명

 

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

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


Write up

 

사이트를 살펴보자.

코드에 주어진 아무 계정으로 로그인했더니 admin 아니라고 flag를 띄워주지 않는다.

 

코드를 살펴보자.

 

cookie에서 session id를 가져오고, session storage에서 username을 가져오고,

username이 admin이라면 flag를 출력해준다.

 

/login에서는 로그인에 성공하면, session id를 랜덤으로 생성하고 cookie를 설정한다.

 

/admin에서는 뭐가 잔뜩 주석처리가 되어있네 ..? "개발자의 노트: 코드 리뷰하고 주석처리 해제 하세용"

뭔가 중요한 내용인가보다. 당장 리뷰해보자.

 

cookies에서 session id를 뽑아오고, 그 session id를 통해 session_storage에서 username을 가져온다.

그리고 username이 admin이 아니라면 index.html을 불러온다.

 

그 밑에는.. session storage를 리턴 ...? session storage를 리턴 ....?!

 

바로 /admin에 접속해보자.

얻었다. admin의 session id.

개발자 도구를 열고, session id의 값을 뚝딱 수정해주면 flag가 출력된다.

 

만약 주석처리를 해제한다면, if문으로 빠져서 index.html이 랜더링되므로 session storage가 출력될 일은 없었을 것이다.

시큐어 코딩 방법까지 알려준 문제인 것 같다.

 

참고로 이 문제 브루트포스 공격 안된다고 개발자가 적어놨네요! 킄킄

'모의해킹 > Dreamhack Wargame' 카테고리의 다른 글

simple_sqli 문제 풀이  (0) 2025.10.28
xss-1 문제풀이  (0) 2025.10.27
ROT128 문제풀이  (0) 2025.10.22
baby-bof 문제풀이  (0) 2025.06.19
php7cmp4re 문제 풀이  (1) 2025.06.17