문제풀이

[Dreamhack] session 문제풀이

suuuullloc 2023. 11. 29. 14:39

# 문제링크 : https://dreamhack.io/wargame/challenges/266

 

session

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

dreamhack.io


 

문제 파일

 

웹페이지

 

흠 며칠전에 풀었던 문제랑 비슷한듯? 문제가 똑같다... session-basic 문제랑 뭐가 다를까? 일단 코드 살펴보자.

 

코드에 나와있는대로 guest로 한 번 로그인해보자.

 

이렇게 뜬다.

 

흠... 아이디가 세션에 담기고 어쩌고저쩌고... 이 코드가 뭔가 중요해보이기는 하는데 아닐수도... 잘 모르겠다 일단 세션 한 번 살펴보자.

 

guest로 로그인했을 때 세션 아이디가 뜨긴 한다.

 

코드를 다시 보니 이 부분이 중요한듯

admin의 세션값을 무작위로 생성한다는 말인 거 같은데 1바이트짜리 헥스값으로 생성한다는 말인 것 같다. 결과적으로 길이가 2인 무작위 16진수 문자열을 생성한다는 말이다. 00~FF까지 256가지 경우의 수가 가능하다.

 

이런 걸 브루트 포스, 즉 무차별 공격이라고 부른다. 버프 스위트를 이용해 브루트 포스를 할 수 있어서 버프 스위트를 이용하도록 하겠다.

 

버프 스위트를 열고 메인창 패킷을 먼저 캡쳐한 후 Intruder탭에 들어가서 타겟을 설정해주고 페이로드를 브루트 포스로 지정해주고 세팅을 해준다.

 

공격 시작

 

다 완료되고 (생각보다 시간이 좀 걸린다...) 살펴보면 혼자 길이가 다른 애가 하나 있다. 얘가 정답인 듯 하다.

 

클릭해서 response를 살펴보면 이렇게 플래그값이 보인다.

 

문제 해결!

 

p.s 이게 새싹 단계라니... session-basic은 1단계였는데 얘가 훨씬훨씬 쉬웠다...