引言
在本实验中,你将学习在 Kali Linux 中初始化和验证 sqlmap 环境的基本步骤。sqlmap 是一个开源的渗透测试工具,它自动化了检测和利用 SQL 注入漏洞以及接管数据库服务器的过程。对于任何想要进行 Web 应用程序安全评估的人来说,理解如何正确设置和使用 sqlmap 至关重要。你将验证其安装,探索其丰富的帮助菜单,理解不同的详细程度(verbosity levels),并确定一个用于测试的目标 URL。
在本实验中,你将学习在 Kali Linux 中初始化和验证 sqlmap 环境的基本步骤。sqlmap 是一个开源的渗透测试工具,它自动化了检测和利用 SQL 注入漏洞以及接管数据库服务器的过程。对于任何想要进行 Web 应用程序安全评估的人来说,理解如何正确设置和使用 sqlmap 至关重要。你将验证其安装,探索其丰富的帮助菜单,理解不同的详细程度(verbosity levels),并确定一个用于测试的目标 URL。
在此步骤中,你将访问 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.
... (输出已截断) ...
了解详细程度级别有助于你控制显示的信息量,这对于渗透测试期间的有效分析至关重要。
在此步骤中,你将识别一个公开可用的易受攻击的 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 至关重要。