SQLMap

데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약

v1.9 2026.03 #sql-injection #automation #pentest

1. SQLMap란?

SQLMap은 오픈소스 침투 테스트 도구로, SQL 인젝션 취약점 탐지 및 익스플로잇을 자동화합니다. Python 기반으로 동작하며, 다양한 데이터베이스 백엔드(MySQL, PostgreSQL, MSSQL, Oracle, SQLite 등)를 지원합니다.

🔍 탐지

GET/POST 파라미터, 쿠키, User-Agent 등 다양한 entry point에서 SQL 인젝션 취약점을 자동 탐지.

⚡ 익스플로잇

데이터베이스 덤프, 테이블/컬럼 추출, 파일 읽기/쓰기, OS 커맨드 실행 등 고급 공격 지원.

🧩 우회

WAF(Web Application Firewall) 우회를 위한 다양한 페이로드 난독화 및 템플릿 제공.

2. 왜 써야 하는가?

수동 SQL 인젝션 테스트는 시간이 많이 소요되고, 실수할 가능성이 높습니다. SQLMap은 반복 작업을 자동화하고, 널리 알려진 대안 도구와 비교했을 때 다음과 같은 강점을 가집니다.

도구자동화 수준지원 DB우회 기능유지보수
SQLMap높음 (전 과정 자동화)10+강력 (tamper 스크립트)활발 (커뮤니티)
jSQL Injection중간 (GUI 위주)5~7기본중간
Burp Suite (수동)낮음 (반자동)무관사용자 구현 필요상용
Havij (단종)중간제한적없음중단

💡 Tip: AI 보안 엔지니어라면 SQLMap을 CI/CD 파이프라인에 통합하여 정기적인 취약점 스캔을 자동화할 수 있습니다.

3. 핵심 개념

SQLMap의 아키텍처는 다음과 같은 주요 모듈로 구성됩니다.

+------------------+ +-------------------+ +-----------------+ | Target Input | ---> | Injection Engine | ---> | Backend DB | | (URL, POST, | | - Detection | | - MySQL | | Cookie, Header) | | - Exploit | | - PostgreSQL | +------------------+ | - Data Extraction | | - MSSQL | +-------------------+ | - Oracle | | +-----------------+ v +---------------------+ | Tamper / Evasion | | (WAF 우회) | +---------------------+ | v +---------------------+ | Output & Reporting | | (CSV, JSON, HTML) | +---------------------+

SQLMap은 탐지 → 확인 → 데이터 추출 3단계로 동작하며, 각 단계마다 사용자 개입 없이 자동으로 최적의 페이로드를 선택합니다.

4. 퀵스타트

4.1 설치

Python 3.7+ 환경에서 pip로 간단히 설치 가능합니다.

pip install sqlmap

또는 GitHub 저장소에서 직접 클론:

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
python sqlmap.py --version

4.2 기본 설정 확인

설치 후 간단한 도움말 출력으로 정상 동작을 확인합니다.

sqlmap --help

4.3 첫 예제: GET 기반 SQL 인젝션

다음은 취약한 예제 URL에 대한 기본 탐지 명령입니다.

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --batch

Python 스크립트 내에서 호출하는 경우:

import subprocess
result = subprocess.run(['sqlmap', '-u', 
    'http://testphp.vulnweb.com/artists.php?artist=1', 
    '--batch'], capture_output=True, text=True)
print(result.stdout[:500])

⚠️ 주의: 실제 운영 환경에서 무단 스캔은 불법입니다. 반드시 허가된 대상에만 사용하세요.

5. 핵심 설정 레퍼런스

옵션설명예시
-u대상 URL-u "http://example.com/page?id=1"
--dataPOST 요청 바디--data "user=admin&pass=test"
--cookie세션 쿠키--cookie "PHPSESSID=abc123"
--level테스트 깊이 (1~5, 기본 1)--level 3
--risk위험도 (1~3, 기본 1)--risk 2
--batch비대화형 모드 (모든 질문 기본값)--batch
--tamperWAF 우회 스크립트--tamper=space2comment
--dump데이터베이스 덤프--dump -T users
--os-shellOS 커맨드 셸 획득--os-shell

6. 실무 팁 & 트러블슈팅

자주 겪는 문제와 해결책

문제원인해결
탐지율 낮음WAF 또는 파라미터 필터링--level 5 --risk 3 및 tamper 스크립트 적용
세션 만료인증 기반 페이지--cookie로 유효한 세션 전달
시간 기반 블라인드 느림네트워크 지연--time-sec 1 (기본 5)로 타임아웃 조정
비정상 종료메모리 부족--threads 1로 스레드 수 감소
파일 출력 안 됨권한 문제--file-dest /tmp로 출력 경로 변경

💡 실무 팁: AI 기반 보안 파이프라인에 통합하려면 --output-dir과 --batch --flush-session을 함께 사용하여 재현성 있는 결과를 얻으세요.

7. 참고 자료