단진
대체로 맑음
단진
  • 분류 전체보기 (162)
    • 개발 (112)
      • 회고 (25)
      • 개발과정 (28)
      • 개념 (14)
      • JavaScript (11)
      • TypeScript (12)
      • 알고리즘 (4)
      • GitHub (4)
      • 오류 (9)
      • TMI (5)
    • 일상 (15)
      • 사진 및 여행 (6)
      • 책 소개 (4)
      • 기타 TMI (5)
    • IT (16)
      • 개념 (5)
      • 데이터베이스 (6)
      • 딥러닝 (1)
      • TMI (4)
    • TMI (4)
      • 법률 TMI (4)
    • 보안 (15)
      • Dreamhack (5)
      • Root Me (10)
hELLO · Designed By 정상우.
단진

대체로 맑음

Dreamhack: cookie
보안/Dreamhack

Dreamhack: cookie

2022. 4. 3. 00:55

쿠키에 관한 문제다.

2022.04.03 - [IT/개념] - 쿠키(Cookie)란?

 

쿠키(Cookie)란?

쿠키 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일 쿠키는 사용자가 같은 웹 사이트에 방문할 때

29223.tistory.com


우선 들어가면 별 내용 없는 페이지가 나온다.

 

우측 위의 로그인 버튼을 눌러본다.

로그인 창이 나오고 페이지 검사를 해보니 default account가 guest/guest라고 하니 로그인 해 본다.

로그인은 되지만 admin이 아니라고 한다.

페이지 검사를 통해 쿠키 값을 보면 guest로 로그인을 했기 때문에 'username' = 'guest' 상태로 되어있는 것을 볼 수 있다.

 

이것을 'admin'으로 바꿔주면 된다.

값을 admin으로 바꾼 후 새로고침을 해주면 flag 값이 출력된다.


문제 파일을 열어보면

이 페이지의 사용자는 guest와 admin이 있고 각각의 password는 guest와 FLAG값이다.

 

밑의 pw == password 부분을 보면 users에 있는 값과 입력한 password값이 일치해야 index페이지로 redirection 되면서 쿠키를 'username' = username으로 설정해서 보낸다.

이 과정이 없다면 app.route('/) 부분에서 username을 설정할 때 'username' = None으로 설정하게 되고 if문에 해당하지 않아 플래그 값을 얻을 수 없다.

 

username = request.cookies.get('username', None)
// username은 쿠키로부터 'username'값을 가져와서 초기 값으로 사용할 것인데 해당 값이 없다면 None을 초기 값으로 한다

 

만약 guest로 로그인하게 되면 밑에서 쿠키가 'username' = 'guest'로 설정이 되고 위에서 받을 때 'username'의 값이 있기 때문에 if문을 실행한다. 하지만 username이 admin이 아니기 때문에 you are not admin이라는 문구가 출력된다.

 

따라서 이 문제에서 FLAG 값을 얻기 위해서는 admin이라는 계정이름에 FLAG값을 password로 입력하거나(이경우는 이미 FLAG값을 알고 있어야 해결할 수 있다) 쿠키의 'username'을 'admin'으로 설정해주면 된다.

'보안 > Dreamhack' 카테고리의 다른 글

Dreamhack: simple_sqli  (0) 2022.04.06
Dreamhack: file-download-1  (0) 2022.04.05
Dreamhack: pathtraversal  (0) 2022.04.04
Dreamhack: xss-1  (0) 2022.04.03
    '보안/Dreamhack' 카테고리의 다른 글
    • Dreamhack: simple_sqli
    • Dreamhack: file-download-1
    • Dreamhack: pathtraversal
    • Dreamhack: xss-1
    단진
    단진

    티스토리툴바