mysql盲注

盲注仍然要判断字符类型注入,可以根据页面的反应。

1 and 1=2 如果页面显示正常,那么就是字符型注入,因为如果是数字,不成立,会有异常。所以第一步仍是判断注入类型

盲注就是存在注入但是页面上没有任何回显 。

盲注分为布尔盲注和时间盲注。

布尔盲注

根据你注入的信息返回ture和false

首先我们要了解两个函数。

length() 判断字符串长度

例如

length((database()))>10

意思就是数据库的字符长度是否大于10

substr() 截取字符串

从第一位截取一个

例如

substr(database(),1,1)='k'

第一个1是截取的第一位值

第二个1是需要提取的字符数量

意思就是数据库的第一个字符是否是k

返回的是ascii码。

因为一个一个的判断过于繁琐,需要判断A-z和阿拉伯数字。

所以我们用了一个函数,Ascii()用来把所需要的字符转换成数字。

然后根据数字来判断字符。

例如

ascii(substr(database(),1,1))>10

意思就是截取库名的第一个字符,转换成ASCII后的数值是否大于10

然后用burp进行抓包,用炸弹,将第一个1和ASCII的值设为变量,进行跑包,这样一个一个的尝试,burp返回的length就不会相同

我们这里所用的都是判断条件

判断字符串的长度是否为10,因为盲注的页面是没有回显点的,所以我们只能通过TRUE和FALSE 来根据界面是否报错或正长运行来判断我们所注入的数据是否正确。

查表的时候要注意两点

1.子查询

什么是子查询,我的理解是嵌套查询

意思就是比如说

length()这是一个判读字符串长度的函数。

length(select 列 from 表)

此时,我们要判断的是(select 列 from 表)这个语句后的结果的字符串长度。

所以,我们在其中要加一对括号,让它查询完(select 列 from 表)再输出字符串长度。

所以我们输出他的字段长度的正确方式是。

length((select 列 from 表))

2.limit 0,1

再者,这个已经用过很多次了,用来限制子查询的输出。

因为一个数据库不可能只有一个表,如果不加limit限制的话,查询的是哪一个表?后则的length函数该去判断哪一个表的字符长度?

故要加上limit限制子查询的输出

时间盲注

有的页面使用布尔盲注页面也无法改变。让人无法判断是否有注入点或则是否注入成功。

所以我们使用了一个函数sleep()

来让页面休眠。

还有一个函数是if

if(条件,条件成立执行,条件不成立执行)

and if(语句,sleep(5),1)

和布尔盲注一样设置变量,

column中有个receive respond 点开。

就可以看他的反应时间,也就是休眠时间来判断是否真确

大概流程

1.查库的字符长度

2.用burp查出库的ASCii值然后得出库名字

3.然后查表的数量

查表的数量要注意,因为是布尔盲注,所以查表的整个语句需要括起来,因为是整个表的查询结果去判断

4.查第一个表的长度

查表名字的时候也要注意

需要用到函数length和substr和limit

因为length()查的是整个表的长度,所以查出的长度是几个加起来表的长度。所以要用substr(要从中提取的字符串,起始位置,要提取的字符数)。如果省略了要提取的字符数,那么就是提取全部。再加上limit的限制是查询的第一张表

好,整个意思就是提取出所查询第一张表的所有字符串,来判断长度是否为多少。

注意子查询和括号

5.查第一个表的名字(第二个表名改limit就行了)

跟查表名一样。burp跑一下。

6.查列数量

where 限制条件加上数据库名字和表名字。

7.查第一列的长度

8.查列名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值