KOROMOON

착한 사마리아인이 되고 싶습니다.

9/18/2025

대량 SQLMap 명령어 자동 실행 가이드


모의침투 테스트 훈련에서 다수 사이트에 SQLMap 스캔할 목적으로 개발함.

단기간에 많은 URL의 파라미터를 대상으로 시행함.

아래 관련 파일을 첨부하였으며 각 단계별 Python 코드를 실행시키면 됨.

다운로드 링크(암호 - koromoon1004) : 

https://drive.google.com/file/d/152yqH2RGGCCOwEnNvs2dtSZN6JX1lcxX/view?usp=drive_link




1 단계 : SQLMap 전용 URL 추출


1. URL 로그를 축척할 목적으로 Burp Suite 로 스캔할 사이트를 돌아다님.

단, Insert 시킬만한 게시물 작성, 댓글 쓰기, 개인정보 수정은 반드시 피해야 함.

SQL Injection 취약점 진단 시 이 점은 반드시 숙지해야 함.


2. Burp Suite > Logger > Ctrl+A 눌러서 전체 선택 후 오른쪽 마우스 클릭 > Save items 기능 클릭 후 파일 저장


3. 아래 명령어로 실행해서 저장함.

python burp_logger_to_sqlmap.py -i [Burp Suite 에서 추출한 URL 파일] -o [SQLMap 전용 URL 저장 파일] -d [추출한 도메인명]


해당 파이썬 코드 특징은 아래와 같음.

- 아래 필드명과 필드명에 부합된 값을 넣음.

값은 따옴표 기호(")로 감싸다.

값 사이는 탭 기호로 구분함.

HTTP Method URL Cookie Parameter POST Data

- Parameter가 포함된 URL만 목록화

- 중복된 행 제거




2 단계 : 대량 SQLMap 명령어 자동 실행


1. 1단계에서 추출한 URL 리스트를 가지고 아래 명령어를 실행시킴.

--url-list-file 옵션은 각 HTTP 메소드에 따라 필요한 옵션들만 가져옴.

필드 :  HTTP Method, URL, Cookie, Parameter, POST Data

GET  : --url --cookie -p "Parameter" (필수)

POST : --url --cookie -p "Parameter" --data "POST Data" (필수)

생성된 명령어 뒤에 추가적인 명령어를 사용자 정의로 덧붙인 형태로 실행시킴.


python sqlmap_run_commands.py --url-list-file url_test.txt --additional-options='[--technique BEUT -v 4 --dbs]




해당 파이썬 코드 특징은 아래와 같음.

- 최대한 가독성과 유지보수를 높이고자 개발함.

- 입력 모드가 2가지 형태로 원하는 모드를 선택하면 됨.

  --command-file     : "이미 완성된 명령"을 행 단위로 그대로 실행 (행마다 옵션 자유)

  --url-list-file    : 탭 구분/쌍따옴표 포맷 URL 리스트를 읽어 일괄 실행

- 추가 옵션도 2가지 형태로 원하는 모드를 선택하면 됨.

  --additional-options           : 문자열(대괄호 [] 감싸기 선택사항, 따옴표 권장)

  --additional-options-file FILE : 파일에서 그대로 읽어 붙임(여러 줄 가능)

- 로그는 4가지 종류가 생김.

  runlogs/run_*.log      : 전체 실행 출력

  runlogs/db_leaks_*.log : "available databases [...]" 블록만 추출

  runlogs/stops_*.log    : 중지 사유 기록(사유/상세/최근 출력 tail)

  runlogs/generated_cmds_*.txt : URL 리스트로 생성된 sqlmap 명령 보관

- 자동 스캔 중 아래와 같은 경우에 한에서 중지시킴.

  지정 초 동안 출력이 전혀 없으면 중지 (기본 120)

  로그 타임스탬프([HH:MM:SS]) 간격 초과 시 중지(기본 8)

  ※ time-based SQLi(SLEEP()/pg_sleep()/WAITFOR/"time-based blind") 감지 시 scan-gap 제외

  자동 응답에 대해서 Y, C, 0 을 누르겠금 설계함.


댓글 없음:

댓글 쓰기