引言
在本实验中,你将学习在 Kali Linux 中初始化和验证 sqlmap 环境的基本步骤。sqlmap 是一个开源的渗透测试工具,它自动化了检测和利用 SQL 注入漏洞以及接管数据库服务器的过程。对于任何想要进行 Web 应用程序安全评估的人来说,理解如何正确设置和使用 sqlmap 至关重要。你将验证其安装,探索其丰富的帮助菜单,理解不同的详细程度(verbosity levels),并确定一个用于测试的目标 URL。
访问 Kali Linux 终端
在此步骤中,你将访问 Kali Linux 终端,这是与 sqlmap 和其他命令行工具交互的主要界面。终端提供了一个强大的环境来执行命令和查看其输出。
首先,请确保你位于 ~/project 目录。这是你实验环境的默认工作目录。
cd ~/project
现在,如果尚未打开终端窗口,请打开一个新的,或者确保你位于现有的终端中。你应该会看到一个类似于 labex@labex-vm:~/project$ 的提示符。
使用 sqlmap --version 验证 sqlmap 安装
在此步骤中,你将通过检查版本来验证 sqlmap 是否已在你的 Kali Linux 环境中正确安装并可访问。这是确认该工具已准备就绪的快速方法。
在你的终端中执行以下命令:
sqlmap --version
你应该会看到类似以下的输出,表明已安装的 sqlmap 版本:
sqlmap version 1.x.x.x ## 或类似版本号
此输出确认 sqlmap 已安装,并且可以从命令行执行。
使用 sqlmap -h 探索主帮助菜单
在此步骤中,你将探索 sqlmap 的主帮助菜单。帮助菜单提供了所有可用选项及其功能的全面概述,这对于理解如何有效使用该工具至关重要。
执行以下命令以显示主帮助菜单:
sqlmap -h
此命令将输出一个包含选项、类别和示例的长列表。滚动浏览输出,以大致了解 sqlmap 的功能。你将看到目标指定、请求选项、优化、注入、检测等部分。
_
_ __ _ __| | __ ___ ___
| '_ \| '__| |/ / / __|/ __|
| |_) | | | < \__ \\__ \
| .__/|_| |_|\_\ |___/|___/
|_|
... (输出已截断) ...
Usage: python3 sqlmap [options]
Options:
--version Show program's version number and exit
-h, --help Show this help message and exit
-v VERBOSE Verbosity level: 0-6 (default 1)
Target:
At least one of these options has to be provided to define the
target(s)
-u URL, --url=URL Target URL (e.g. "http://www.site.com/vuln.php?id=1")
-g GOOGLEDORK Process Google dork results as target URLs
... (输出已截断) ...
此输出对于理解你可以与 sqlmap 一起使用的各种参数至关重要。
使用 -v 选项理解详细程度级别
在此步骤中,你将使用 -v 选项了解 sqlmap 中的详细程度级别。详细程度级别控制 sqlmap 在执行期间显示的信息的量,这对于调试或更深入地了解其操作非常有用。
-v 选项的范围从 0(静默)到 6(调试)。让我们尝试几个级别,看看区别。
首先,尝试一个较低的详细程度级别(例如 0):
sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -v 0 --batch
你将注意到输出非常少,因为 sqlmap 正在静默运行。在此演示中添加了 --batch 选项以避免交互式提示。
接下来,尝试一个较高的详细程度级别(例如 3):
sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -v 3 --batch
你将看到明显更多的输出,包括 HTTP 请求、响应以及有关测试过程的详细信息。此级别通常有助于了解 sqlmap 在后台所做的工作。
_
_ __ _ __| | __ ___ ___
| '_ \| '__| |/ / / __|/ __|
| |_) | | | < \__ \\__ \
| .__/|_| |_|\_\ |___/|___/
|_|
... (输出已截断) ...
[HH:MM:SS] [INFO] starting @ HH:MM:SS /YYYY-MM-DD/
[HH:MM:SS] [INFO] fetched data: 'cat=1'
[HH:MM:SS] [INFO] testing connection to the target URL
[HH:MM:SS] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
[HH:MM:SS] [INFO] the target URL is not protected by any kind of WAF/IPS/IDS
[HH:MM:SS] [INFO] testing if the target URL is stable
[HH:MM:SS] [INFO] target URL is stable
[HH:MM:SS] [INFO] testing for GET parameter 'cat'
[HH:MM:SS] [INFO] GET parameter 'cat' is vulnerable.
... (输出已截断) ...
了解详细程度级别有助于你控制显示的信息量,这对于渗透测试期间的有效分析至关重要。
识别易受攻击的测试应用程序 URL
在此步骤中,你将识别一个公开可用的易受攻击的 Web 应用程序 URL,该 URL 可用于测试 sqlmap。出于道德黑客和学习目的,使用指定的测试环境或你已获得明确测试许可的应用程序至关重要。
在本实验中,我们将使用 http://testphp.vulnweb.com/listproducts.php?cat=1 作为我们的目标 URL。此 URL 故意存在 SQL 注入漏洞,并由 Acunetix 提供用于测试目的。
你只需记下此 URL。在未来的实验中,你将使用此 URL 和 sqlmap 来执行各种 SQL 注入攻击。
URL 是: http://testphp.vulnweb.com/listproducts.php?cat=1
此 URL 包含一个 GET 参数 cat,该参数已知存在漏洞。这将是你后续 sqlmap 练习的目标。
总结
在本实验中,你已成功初始化并验证了你在 Kali Linux 中的 sqlmap 环境。你学会了如何访问终端、检查 sqlmap 版本、探索其全面的帮助菜单,并理解了详细程度级别对于详细输出的重要性。此外,你还识别了一个公开可用的易受攻击的 Web 应用程序 URL(http://testphp.vulnweb.com/listproducts.php?cat=1),它将作为你未来 SQL 注入练习的目标。这些基础步骤对于在渗透测试场景中有效利用 sqlmap 至关重要。


