SQLMap常用命令指南(参数及其用法)

一、SQLMap 简介

SQLMap 是一款开源的自动化 SQL 注入工具,广泛应用于检测和利用 Web 应用程序的 SQL 注入漏洞。它支持多种数据库类型(如 MySQL、PostgreSQL、MSSQL、Oracle 等),并提供了丰富的参数以应对各种注入场景。


二、常用命令速查

2.1 目标指定

命令 说明
-u <URL> 指定目标 URL
-d <DB连接> 直接连接数据库
-l <文件> 从 Burp 日志中读取目标
-r <文件> 从 HTTP 请求文件中读取目标
-g <Google语法> 使用 Google 搜索结果作为目标
-c <配置文件> 读取配置文件执行

2.2 数据库枚举

命令 说明
--dbs 列出所有数据库
--current-db 列出当前数据库
--tables 列出当前数据库的所有表
--columns 列出指定表的所有列
--dump 导出表中数据
-D <库名> 指定数据库
-T <表名> 指定表
-C <列名> 指定列

2.3 请求与注入

命令 说明
--data=<数据> 指定 POST 数据
--method=<方法> 指定 HTTP 方法
--cookie=<Cookie> 指定 Cookie
--user-agent=<UA> 指定 User-Agent
--referer=<Referer> 指定 Referer
--headers=<头信息> 添加额外请求头
--proxy=<代理> 使用代理
--delay=<秒> 设置请求延迟
--timeout=<秒> 设置超时时间
--tamper=<脚本> 使用篡改脚本绕过 WAF

2.4 检测与优化

命令 说明
--level=<1-5> 设置检测等级(默认1)
--risk=<0-3> 设置风险等级(默认1)
--smart 启发式检测,节省时间
--batch 自动确认,无需交互
--threads=<数> 设置线程数(最大10)
--random-agent 使用随机 User-Agent

2.5 高级功能

命令 说明
--os-shell 尝试获取系统 Shell
--file-read=<文件> 读取数据库服务器文件
--file-write=<文件> 写入文件到服务器
--os-cmd=<命令> 执行操作系统命令
--sql-query=<SQL> 执行自定义 SQL 语句
--sql-shell 交互式 SQL Shell

三、常用操作示例

3.1 基本注入流程

复制代码
sqlmap -u "http://example.com/page?id=1" --batch --dbs
sqlmap -u "http://example.com/page?id=1" -D dbname --tables
sqlmap -u "http://example.com/page?id=1" -D dbname -T users --columns
sqlmap -u "http://example.com/page?id=1" -D dbname -T users -C username,password --dump

3.2 POST 注入

复制代码
sqlmap -u "http://example.com/login" --data="username=admin&password=pass" --forms
复制代码
sqlmap -u "http://example.com/dashboard" --cookie="session=abc123" --level=2

四、检测等级与风险等级说明

--level 参数

  • 1:默认等级,测试 GET 和 POST 参数

  • 2:增加 Cookie 检测

  • 3:增加 User-Agent 和 Referer 检测

  • 4:增加 Host 头检测

  • 5:全量检测

--risk 参数

  • 1:默认,大多数测试语句

  • 2:增加基于时间的盲注测试

  • 3:增加 OR 型注入测试


五、小贴士

  • 使用 --batch 可避免交互式确认,适合自动化;

  • 使用 --tamper 可绕过简单的 WAF/IDS;

  • 使用 --delay--threads 可控制请求频率,避免被封;

  • 结合 Burp Suite 抓包后使用 -r 参数进行注入测试非常方便。


六、总结

SQLMap 是安全测试中不可或缺的工具之一,熟练掌握其常用参数和场景组合,可以极大提升渗透测试效率。本文列举的指令覆盖了大部分常用场景,建议结合实际靶场练习,加深理解。

相关推荐
曹牧1 天前
SQL:多个事务同时修改同一索引块
数据库·sql
汤愈韬1 天前
三种常用 NAT 的经典案例
网络协议·网络安全·security
lzhdim1 天前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
汤愈韬1 天前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
@小柯555m1 天前
MySql(高级操作符--操作符混合运用)
数据库·sql·mysql
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
@insist1231 天前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
Chockmans1 天前
春秋云境CVE-2017-3506
安全·web安全·网络安全·系统安全·安全威胁分析·春秋云境·cve-2017-3506
Chengbei111 天前
轻量化 Web 安全日志分析神器 星川智盾日志威胁检测、地理溯源、MITRE ATT&CK 映射,支持 Windows/macOS/Linux
前端·人工智能·安全·web安全·macos·系统安全·安全架构