포스트

드림핵 Beginner - web-misconf-1

드림핵 web-misconf-1 웹해킹 워게임 풀이

드림핵 Beginner - web-misconf-1

https://dreamhack.io/wargame/challenges/45

문제 설명

기본 설정을 사용한 서비스입니다.
로그인한 후 Organization에 플래그를 설정해 놓았습니다.


문제 풀이

파일 분석

문제에서 제공하는 파일을 살펴보면 deploy라는 디렉토리에 defaults.ini 파일이 보인다. 문제에서 이 서비스는 기본 설정을 사용한 서비스라고 하니 해당 파일은 설정 파일이라는 것을 짐작해볼 수 있다. 참고로 .ini 확장자 자체가 설정 파일을 의미한다.

defaults.ini

파일을 살펴보면 700줄에 달하는 설정 값이 담겨져 있기 때문에 하나하나 살펴볼 수는 없다.
우선 문제에서 언급했던 “organization”이라는 문자열과 플래그와 연관이 있을 듯 싶으니 ctrl + f로 찾아보면 된다.

1
2
# specify organization name that should be used for unauthenticated users
org_name = DH{THIS_IS_FAKE_FLAG}

계속 찾다보면 수상한 부분이 등장한다. 가짜 플래그를 담고있는 org_name이라는 설정값이다.

웹사이트 분석

설정 파일에선 가짜 플래그를 담고있으니 이젠 진짜를 알아내야 하는데 해당 파일에선 도저히 찾을 수가 없다. 문제의 VM 서버를 열어 접속해본다.

login page

web-misconf-1_login
사이트에 접속하면 곧바로 로그인 창이 뜨게 된다.
어떤 값으로 로그인을 하면 될까, 아이디를 새로 만들어야 하나, 회원가입 버튼이 없는데 등등 생각하다가 다시 설정 파일을 둘러보았다.

1
2
3
4
5
# default admin user, created on startup
admin_user = admin

# default admin password, can be changed before first start of grafana, or in profile settings
admin_password = admin

중간에 이러한 설정값들이 들어있다. 서버가 시작될 때 기본적으로 admin 유저를 만들고 비밀번호도 아이디와 동일하게 admin으로 설정된다.

ID: admin, PW: admin으로 로그인 하면 된다.

이때 갑자기 비밀번호를 바꾸는 창이 나오는데 본인이 원하는 적절한 번호로 변경하고 넘어가면 된다. 다시 쓸 일은 없으니 외우지 않아도 된다.

main page

web-misconf-1_main_page
web-misconf-1_panel
이렇게 메인 페이지에 들어가면 어떠한 서비스를 전체적으로 컨트롤 할 수 있는 창이 나온다. 여기서 우리가 얻어야할 것은 진짜 플래그이다.

처음에는 왼쪽 패널 맨 아래에 있는 Server Admin 카테고리의 Orgs에 들어가면 플래그를 찾을 수 있겠거니 싶었지만 아니었다.

setting page

web-misconf-1_setting_flag
그래서 그 다음으로는 Orgs 아래에 있는 Settings에 들어가 보았다.
들어가니 무언가 설정값으로 보이는 것들이 나열돼있다. 조금만 더 내려가면 바로 진짜 플래그를 발견할 수 있다.


배운것

.ini가 설정 파일의 확장자 중 하나라는 라는 것을 알게됐다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.