Sqlmap在sqli-lab上的一些使用

目录

1.get使用方法:
2.post使用方法:
3.header注入使用方法:
4.指定注入的位置:
5.盲注使用不接收http body:
6.设置多线程(可以设置的最大数量为10,默认为1):
7.预测输出:
8.持久连接:
9.指定数据库的探测
10.sqlmap脚本绕过(详细的脚本解释)
11.强制设置无效值替换:
12.自定义载荷(payload)位置
13.sqlmay设置tamper脚本:
14.sqlmap设置具体的注入技术:
15.查看当前用户以及是否是dba用户
16.枚举dbms的权限
17.爬取url:


1.get使用方法:

1.查看是否有注入点:sqlmap -u 网址
在这里插入图片描述

2.爆出数据库名:sqlmap -u 网址 --dbs
在这里插入图片描述
3.爆出数据库的表名:sqlmap -u 网址 -D security --tables
在这里插入图片描述

4.爆出数据库的列名:sqlmap -u 网址 -D security -T users --columns
在这里插入图片描述

5.dump出数据:sqlmap -u -D security -T users -C id,password,username --dump
在这里插入图片描述

2.post使用方法:

1.使用burp抓包,将请求内容保存在txt文件中(或者使用-u 网址 --data ‘data’来代替)
在这里插入图片描述

2.使用sqlmap检查是否存在注入点:sqlmap -r 文档位置
在这里插入图片描述
3.使用sqlmap爆库名:sqlmap -r 文档位置 --dbs
在这里插入图片描述
其余步骤与get方式一样

3.header注入使用方法:

当我们使用–level 3时就会检查UA,referer是否存在注入,而level 2则会检测cookie
1.查看是否存在注入点:sqlmap -r 文档位置 --dbms=security --level3
在这里插入图片描述
2.查看数据库:sqlmap -r 文档位置 --dbs
在这里插入图片描述
其他的与get也是一样的

4.指定注入的位置:

在我们要指定注入的位置后面加上即可,例如:
在这里插入图片描述
然后sqlmap运行的时候就会探测到我们的
号:
在这里插入图片描述
可以看到,这里就只探测了cookie:
在这里插入图片描述

5.盲注使用不接收http body:

sqlmap -u 网址 --null-connection,这样sqlmap会以head的方式发送探测请求
在这里插入图片描述

6.设置多线程(可以设置的最大数量为10,默认为1):

在我们之前的参数后面加上 --threads 10就可以了,但是在时间盲注中使用多线程是不安全的,所以尽量不要在时间盲注使用多线程:
在这里插入图片描述
使用10个线程:
开始时间:
在这里插入图片描述
结束时间:
在这里插入图片描述
花了大概5分钟

使用默认线程数量:
开始时间:
在这里插入图片描述
结束时间:
在这里插入图片描述
还没有跑完,可以看到速度的差距有多大了

7.预测输出:

–predict-output
该方法可以提升性能,但不与–threads兼容
使用预测输出:
开始时间:
在这里插入图片描述
结束时间:
在这里插入图片描述
可以看到跟默认的爆破到同样的地方时间少了两分钟,说明还是有效果的,但是没有–threads 10快

8.持久连接:

–keep-alive
该方法也可以提升性能
使用持久连接:
开始时间:
在这里插入图片描述
结束时间:
在这里插入图片描述
感觉跟默认的差距不大。。。。

9.指定数据库的探测

–dbms 数据库名
这样可以节约时间

10.sqlmap脚本绕过

以sqli-labs-less36为例:
不使用脚本:
在这里插入图片描述
可以看到无法检测出注入点

使用脚本:(unmagicquotes.py,用%df%27代替单引号,用–代替空格)

在这里插入图片描述
可以看到检测出注入点了

11.强制设置无效值替换:

有时候我们需要使原始的参数无效时,sqlmap默认使用负数来替换原始值,而这里我们还可以使用:

–invalid-bignum 用大数字替换原始值(id=1999999999)

–invalid-logical 用布尔运算替换原始值(id=1 and 1=2)

–invalid-string 用随机字符串替换原始值(id=asdsa)

12.自定义载荷(payload)位置

一般是不会用到的,让sqlmap自己去插入就行了
如果使用这个的话需要加上前缀和后缀:

–prefix="’)" --suffix=" and ('1"

而我们插入的payload就会在这中间:

13.sqlmay设置tamper脚本:

–tamper"脚本,各个脚本之间空格隔开"

14.sqlmap设置具体的注入技术:

–technique:
B:布尔盲注
E:报错
U:联合
S:堆叠
T:时间
Q:内联查询

默认使用以上的全部技术,感觉sqlmap一般查不出来堆叠注入,可能是我还没有设置好(使用sqli-lbas-less39验证)

15.查看当前用户以及是否是dba用户

–current-user 查看用户

–is-dba 查看是否是dba

–hostname 查看主机名
在这里插入图片描述

–password暴力破解用户名密码
在这里插入图片描述

16.枚举dbms的权限

–privileges --role
在这里插入图片描述

17.爬取url:

–crawl=num(1,2,3,4:要爬取的深度)
在这里插入图片描述


版权声明:本文为CSDN博主「Mccc_li」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xmd213131/article/details/105919380

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值