안경잡이개발자

728x90
반응형

  DB is really GOOD은 이름에서부터 알 수 있듯이 데이터베이스(Database) 관련 문제입니다.

 

 

  문제 풀이 사이트에 접속하면 다음과 같이 무언가 입력하여 접속하는 창이 등장합니다.

 

 

  공백 그대로 접속을 하면, 일종의 채팅방에 접속한 것과 같이 어떠한 내용을 기록하는 페이지가 등장합니다.

 

 

  이런 저런 방에 들어갈 수 있는 걸 확인할 수 있는데요. 다음과 같이 admin 채팅 방에 들어가려고 해보겠습니다.

 

 

  이 경우 admin 방으로는 접속할 수 없다고 합니다.

 

 

  이후에 정말 많은 값들을 대입해보았습니다. 퍼징(Fuzzing)을 하는 것은 반칙일 것 같아서 그럴싸한 것들을 많이 넣어 보았으며 그 중에서는 /를 넣어 보았습니다.

 

 

  그러자 다음과 같이 데이터베이스 관련 오류 메시지가 나오는 것을 확인할 수 있습니다. 사실 개발자 관점에서 웹 사이트를 배포할 때는 이러한 오류 로그가 클라이언트에게는 보이지 않도록 처리해야 하는데요. 그러한 처리의 부재로 인해 문제가 발생했다고 할 수 있습니다.

 

  오류 메시지를 확인해 보시면 다음과 같이 데이터베이스 파일을 열 수 없다고 하네요. 아무래도 SQL Lite을 이용하여 로컬 데이터베이스를 관리하고 있는 것 같고, 각 채팅방에 따른 DB 파일을 생성하여 거기에 기록하는 것 같습니다. 오류 메시지를 확인해 보시면 DB 파일의 경로는 ./db/wkrm_{채팅방 이름}.db이네요.

 

 

  실제로 특정 방의 데이터베이스 경로에 직접 접근을 해보니, 데이터베이스 파일이 다운로드 되는 것을 확인할 수 있습니다.

 

 

  파일을 에디터(Editor) 프로그램으로 열어 보니, 다음과 같이 임의의 문자열이 적혀 있습니다.

 

 

  따라서 같은 방법으로 ./db/wkrm_admin.db의 경로에 접속을 하니, 마찬가지로 admin 데이터베이스 정보 파일도 얻을 수 있었습니다. 해당 파일을 에디터 프로그램으로 열어 보니 다음과 같이 플래그(Flag)가 적혀 있는 주소가 등장합니다.

 

 

  해당 경로로 접속하여 플래그(Flag) 값을 얻을 수 있었습니다.

 

 

728x90
반응형