

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

서버 생성하기 버튼을 클릭하여 해당 문제를 풀기 위한 서버를 생성합니다.
문제를 풀기 전 세션에 대해 설명하자면, 세션은 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용하는 것입니다. 또한 사용자의 정보를 클라이언트 브라우저가 아닌 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수하다고 볼 수 있습니다. 쿠키는 데이터 저장 주체가 클라이언트(이용자)인 반면에, 세션은 저장 주체가 서버이기 때문입니다.
첫 번째로 쿠키를 이용하여 문제의 플래그를 찾는 방법은 이전 [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 |