DB is really good
SQL Injection의 냄새가 물씬나는 이 문제..
일단 스크립트 문이 작동하는지 먼저 해보았다.
오.. 길이가 정해져 있나 보다.
일단 아무거나 넣어보자 1
안녕, 1
1의 아이디를 가지고 있는 사람들이 쓴 글들이 모두 보이는 것 같다. 위 글쓰기 곳에 많은 사람들이 스크립트 작동여부, SQL injection 동작 여부를 확인해 봤나보다.
guest
작동 안함
admin
오!
admin으로는 접속할 수 없단다.
실제로 js로 필터링 처리를 한 모양이다.
조금 더 찾아보기로 한다.
/ 쳐보기
오!
SQLite3->open('./db/wkrm_/.db')
MyDB->_construct('./db/wkrm/.db')
이렇게 문제가 발생한 부분은 이 2개다.
user/ 을 입력하니
open('./db/wkrm_user/...')
__construct('./db/wkrm_user/...')
이렇게 바뀌는 것을 볼 수 있었다.
./db/wkrm_[USER_NAME].db 여기에 저장되는 것 같다.
처음에 시작하는 ./은 현재디렉토리를 나타내므로
http://wargame.kr:8080/db_is_really_good/db/wkrm_admin.db
여기로 접근 시도를 해보면 될 것 같다.
wget을 사용해서 저 db파일을 다운로드 받을 수 있나 kali linux를 통해 받아보았다.
받았다..!
이 db을 보기 위해서 준비작업이 필요한데..
SQlite3를 아까 봐서 이게 뭔지 검색해본 결과 파일기반의 임베디드 SQL 데이터베이스 엔진이라고 한다.
linux에서 SQLite는 sqlite3 [파일경로]
로 실행한다고 한다.
내 kalilinux에는 sqlite3가 없으므로 sudo apt-get install sqlite3
을 통해 설치를 해주었다.
dir
명령어로 현재 디렉토리에 wkrm_admin.db가 있는지 확인해보고 있는 것을 확인했으므로 바로 sqlite3로 열어본다.
sqlite는 show tables
show databases
가 안먹는다. 문법이 다른가보다.
찾아보니 .table
로 볼 수 있는 듯 했다.
select * from
쓸 수 있나보다
알아내기 까지 과정이다...
뒤에 숫자 빼고 php로 접속하니 플래그 값을 얻을 수 있었다.
Uploaded by Notion2Tistory v1.1.0