SQLMap 도구
■ 개요
- SQLMap은 SQL Injection 점검 도구로써, SQL 인젝션을 통해 데이터베이스 정보, 테이블 정보, 사용자 정보, 컬럼 값등을 조회할 수 있으며, SQLMap을 활용하여 웹쉘 등도 업로드 가능하다.
- Kali Linux에서는 기본적으로 내재되어 있으며, windows에서도 설치를 진행하여 사용가능하다.
- 실무에서도 많이 사용되는 도구로, 시스템 영향을 줄 수 있는 부분이 있으니 조심해서 사용
- SQLMap 활용하는 방법에 대해 포스팅 진행
■ 자주 사용하는 옵션
※ 하기에 기재된 옵션 이외에도 많으니 Kali Linux에서 'sqlmap --help' 명령어를 통해 습득 필요
SQLMap 옵션 | 설명 |
-u | - 점검하고자 하는 URL 입력 |
--data | - POST로 요청하는 파라미터 점검 |
--cookie | - 로그인을 해야 서비스 이용 가능한 웹페이지 점검 시 사용 |
--batch | - SQLMap 점검 과정에서 사용자에게 묻지 않고 디폴트 값으로 진행 |
--risk | - SQLMap 점검하는 과정에서 risk를 어떻게 설정할건지 설정 (디폴트는 1이며, 높을수록 시스템에 영향이 생길 가능성이 커짐) |
--level | - SQLMap 점검하는 과정에서 level을 어떻게 설정할건지 설정 (디폴트는 1이며, 높을수록 점검하는 항목 및 디테일하게 점검) |
--tables | - 데이터베이스 테이블 정보만 출력하도록 설정 |
--dbms | - 식별된 DBMS를 지정하는 옵션 |
--users | - DBMS 사용자 열거 |
--passwords | - DBMS 사용자 비밀번호 해시 열거 |
--dump | - DBMS 데이터베이스 테이블 엔트리를 덤프 |
-T | - 식별된 테이블을 지정하는 옵션 |
-a | - 모든 데이터베이스, 테이블 정보들을 출력하는 옵션 |
-C | - 열거할 DBMS 데이터베이스 테이블 컬럼 설정하는 옵션 |
-D | - 식별된 데이터베이스를 지정하는 옵션 |
■ SQLMap 실습 환경
- Kali Linux
- bee box
- GMShop[보안 프로젝트 교육에서 제공]
※ 조정원 대표님이 만든 보안 프로젝트 교육에서 제공해주고 있으며, 다양한 실습환경 및 많은 교육자료들을 제공
■ SQLMap 실습 1[GET 메소드로 DB에 요청하는 경우]
Step 1) GMShop 검색란에 검색어 입력 시 GET 메소드로 요청을 보내는 것을 확인.
Step 2) SQLMap을 사용하여 모든 데이터베이스 조회 진행 시, 정상적으로 데이터베이스 탈취 가능 확인
명령어 |
root@kali#sqlmap -u [점검할 URL] --risk=3 --level=3 --batch -a |
■ SQLMap 실습 2[POST 메소드로 DB에 요청하는 경우]
Step 1) GMShop 로그인 시 POST 메소드로 요청을 보내는 것을 확인.
Step 2) SQLMap을 사용하여 모든 테이블 정보 조회 진행 시, 정상적으로 테이블 목록 가져오는 것을 확인
명령어 |
root@kali#sqlmap -u [점검할 URL] --data [HTTP Body값] --level=3 --data=3 --batch --tables |
■ SQLMap 실습 3[로그인 인증을 해야 접근 가능한 페이지를 점검할 경우]
Step 1) beebox에 로그인 후 입력란에 임의의 문자를 입력 후 검색했을 때, GET 메소드로 요청하는 것을 확인 및 개발자 도구를 통해 쿠키값 확인.
Step 2) SQLMap을 사용하여 데이터베이스, 테이블 지정 후 테이블 엔트리 덤프 진행 시, 정상적으로 테이블 엔트리 정보를 가져오는 것을 확인
명령어 |
root@kali#sqlmap -u [점검할 URL] --cookie=[쿠키값] --level=3 --risk=3 --batch -D [DB명] -T [테이블명] --dump |