본문 바로가기

Dreamhack

[Dreamhack 워게임 문제 풀이] _ session-basic

해당 문제를 풀기 위해서도, 파일을 다운 받은 후 압축을 풀어줍니다.

 

서버 생성하기 버튼을 클릭하여 해당 문제를 풀기 위한 서버를 생성합니다.

 

문제를 풀기 전 세션에 대해 설명하자면, 세션은 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용하는 것입니다. 또한 사용자의 정보를 클라이언트 브라우저가 아닌 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수하다고 볼 수 있습니다. 쿠키는 데이터 저장 주체가 클라이언트(이용자)인 반면에, 세션은 저장 주체가 서버이기 때문입니다. 

 

첫 번째로 쿠키를 이용하여 문제의 플래그를 찾는 방법은 이전 [Dreamhack 문제 풀이]_cookie 글을 참고하면 됩니다.      이제는 두 번째 조건인 session으로 로그인하여 플래그를 찾기 위해서는 다운 받은 파일을 살펴봐야 합니다. 

 

 

코드를 통해 웹페이지 가진 페이지들(app.route~)을 보게 되면 (/, /login, /admin)이 있음을 알 수 있습니다.

/login url 창은 해당 화면과 같이 나타납니다.

 

 

username과 password에 모두 guest를 입력하여 로그인 해줍니다. : [Dreamhack 문제 풀이]_cookie 글 참고 

guest로 로그인 한 후 F12 버튼을 누르면 해당 개발자도구 화면이 나타납니다. 

 

또한 코드를 통해 url 창에 /admin을 입력한다면 admin(관리자)로 접속할 수 있다는 것을 알 수 있습니다. 그렇기에

해당 url에 /admin을 추가하여 새로고침 버튼을 누르면, 위와 같은 화면이 나타난다는 것을 볼 수 있습니다.

 

 

url 창에 /admin을 입력하면, admin(관리자)로 접속할 수 있고 : "admin" 앞에 세션 id가 출력된다는 사실을 알 수 있습니다. 이러한 사실을 바탕으로 sessionid를 위조할 수 있습니다. 

 

admin으로 로그인 하였을 때, 알아낸 session id를 개발자도구 sessionid의 값에 넣어주면 우리가 찾고자 하는 Flag를 찾을 수 있습니다.

 

문제 풀이 완료!  

 

 

 

'Dreamhack' 카테고리의 다른 글

[Dreamhack 문제 풀이] _ CSRF 1  (0) 2023.11.07
[Dreamhack 문제 풀이] _ xss-2  (0) 2023.09.24
[Draemhack 문제 풀이] _ xss-1  (0) 2023.09.23
[ Dreamhack 워게임 문제 풀이] _ cookie  (0) 2023.09.20
[Dreamhack] 워게임 문제 풀이  (0) 2023.09.17