문제 페이지로 들어가면 다음과 같이 유저 이름을 입력하고 로그인 하는 화면이 나온다.
admin으로 로그인하려고 하자 admin으로는 로그인할 수 없다고 한다.
다른 닉네임으로는 로그인이 되며, 다른 사용자들이 남겨놓은 메모를 확인할 수 있었다.
여기서, admin으로 접속하게 되면 flag 값을 얻을 수 있을 것이라 예상했다.
그렇다면, MySQL 등의 DBMS에서는 'admin'과 'admin '을 동일하게 인식하는 것을 바탕으로 'admin '을 입력해 로그인했다.
로그인에 성공한 듯 보였으나 FLAG와 관련된 어떤 것도 찾을 수 없었다.
그래서 개발자 도구로 살펴보니 'admin '로 로그인 된 것을 알 수 있었다. 즉, 'admin'과 'admin '을 다르게 인식하는 것으로 판단할 수 있었다.
그래서 SQLite 같은 DBMS를 사용하고 있음을 예상할 수 있었다.
(참고: http://woowabros.github.io/study/2018/02/26/mysql-char-comparison.html)
그렇다면 여기서 더 할 수 있는 것은 없다. 사용자의 이름으로 무언가를 해내는 수 밖에 없다.
여러가지 이름으로 테스트를 해보는 도중, '/'로 로그인을 하려고 하니 위와 같은 에러가 발생했다.
위 에러 메시지로, 사용자 이름과 그에 저장된 메모는 './db/wkrm_(사용자 이름).db'에 저장될 것이라고 예상할 수 있었다.
그래서 URL에 './db/wkrm_admin.db'를 이어붙이고 접속했다.
위와 같이 db 파일이 다운로드 되었다.
이 파일을 온라인으로 확인할 수 있는 사이트에서 내용을 확인했다.
https://sqliteonline.com/
FLAG를 찾아낼 수 있었다.
'Wargame > wargame.kr' 카테고리의 다른 글
8. md5_compare (0) | 2018.07.19 |
---|---|
7. fly me to the moon (0) | 2018.07.19 |
5. WTF_CODE (0) | 2018.07.18 |
4. login filtering (0) | 2018.07.18 |
3. flee button (0) | 2018.07.18 |