점검 도구

SQLMap 도구

sheow13 2024. 1. 1. 20:21
728x90

 

 개요

- 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 메소드로 요청을 보내는 것을 확인.

[검색란에 검색 시 URI에 검색한 문구가 표시되는 것을 확인했을 때  GET 메소드로 요청하는 것을 확인]

 

 

[개발자 도구를 통해서도 GET 메소드 사용 유무 확인 가능]

 

 

Step 2) SQLMap을 사용하여 모든 데이터베이스 조회 진행 시, 정상적으로 데이터베이스 탈취 가능 확인

명령어
root@kali#sqlmap -u [점검할 URL] --risk=3 --level=3 --batch -a

 

[SQLMap을 통해 사용자, DB 등에 대한 정보 획득]

 

 

 SQLMap 실습 2[POST 메소드로 DB에 요청하는 경우]

Step 1) GMShop 로그인 시 POST 메소드로 요청을 보내는 것을 확인.

[GMShop 회원 로그인 시도]
[개발자 도구를 통해 POST 메소드 사용 및 Body값 확인]

 

Step 2) SQLMap을 사용하여 모든 테이블 정보 조회 진행 시, 정상적으로 테이블 목록 가져오는 것을 확인

명령어
root@kali#sqlmap -u [점검할 URL] --data [HTTP Body값] --level=3 --data=3 --batch --tables 

 

[SQLMap을 통해 모든 테이블 정보 수집 확인]

 

 

 SQLMap 실습 3[로그인 인증을 해야 접근 가능한 페이지를 점검할 경우]

Step 1) beebox에 로그인 후 입력란에 임의의 문자를 입력 후 검색했을 때, GET 메소드로 요청하는 것을 확인 및 개발자 도구를 통해 쿠키값 확인.

 

[비박스 로그인 후 검색란에 문자열 입력 후 조회 시 GET 메소드 사용함을 확인]
[개발자 도구를 통해 쿠키값 확]

 

Step 2) SQLMap을 사용하여 데이터베이스, 테이블 지정 후 테이블 엔트리 덤프 진행 시, 정상적으로 테이블 엔트리 정보를 가져오는 것을 확인

명령어
root@kali#sqlmap -u [점검할 URL] --cookie=[쿠키값] --level=3 --risk=3 --batch -D [DB명] -T [테이블명] --dump

[데이터베이스 엔트리 값 수집 확인]