news 2026/6/4 8:37:25

手把手带你理解 SQL 注入之布尔盲注:没有回显也没有报错,如何一步步猜出数据库信息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手带你理解 SQL 注入之布尔盲注:没有回显也没有报错,如何一步步猜出数据库信息

上一篇文章我们学习了报错注入。

通过数据库返回的错误信息,我们依然能够获取数据库中的数据。

但现实中的很多网站更加严格:

没有回显位

没有错误信息

页面永远只会显示:查询成功

或者:页面正常

这时候攻击者还能获取数据库信息吗?

答案是:可以。

这就是今天要学习的内容——布尔盲注(Boolean-Based Blind SQL Injection)。

什么是布尔盲注?

布尔盲注中的:Boolean

意思是:

True(真)
False(假)

攻击者无法直接看到数据库内容。

只能通过页面返回结果的不同来判断条件是否成立。

简单来说:

攻击者是在和数据库玩“猜谜游戏”。

为什么叫盲注?

因为攻击者看不到真实数据。

例如,正常情况下:

数据库名称:
security

可以直接显示。

这属于有回显。

而布尔盲注环境,页面永远不会显示:

security

攻击者只能通过:页面正常

或者:页面异常

来猜测数据。

所以被称为:Blind Injection(盲注)

布尔盲注是如何工作的?

假设网站存在如下查询:

SELECT * FROM news WHERE id=1;

用户访问:

?id=1

页面正常显示新闻内容。

攻击者测试:

?id=1 and 1=1

结果:页面正常

因为:1=1 成立。

继续测试:

?id=1 and 1=2

结果:页面空白

因为:1=2 不成立。

此时说明:

页面会根据真假条件产生不同响应。

攻击者就能利用这一特点获取数据。

攻击者如何猜数据库名?

假设攻击者想知道:数据库名称是什么,但无法直接查看。

那么可以这样思考,数据库名称的第一个字符是不是:a?

如果成立:页面正常

如果不成立:页面异常

继续猜:

b
c
d
e
...

直到找到正确字符。

例如:

s

页面正常。

说明:数据库名第一位 = s

接下来猜第二位:

e

页面正常。

得到:

se

不断重复:

s
e
c
u
r
i
t
y

最终得到:

security

如何获取表名?

知道数据库名称后,攻击者会继续收集信息。

例如:

数据库中可能存在:

users
admin
orders
news

这些表。

攻击者依然通过真假判断:逐个字符猜测。

例如:第一个表名第一位是不是u成立。

继续猜:

s
e
r
s

最终得到:

users

如何获取字段名?

找到:

users

表后。

继续获取字段。

例如:

id
username
password
email

通过不断判断真假条件。

最终能够枚举出字段结构。

如何获取用户数据?

知道:users表。

以及:

username
password

字段后。

攻击者继续猜测数据内容。

例如:

用户名第一位是不是a

成立。

继续猜:

d
m
i
n

最终得到:

admin

密码也可以采用同样方式逐个字符获取。

虽然速度慢。

但理论上依然可以读取数据。

为什么布尔盲注效率很低?

因为:每个字符都需要猜。

例如:

security

共8个字符。

攻击者需要:大量请求

才能获取完整结果。

相比:UNION注入

直接返回结果。

布尔盲注会慢很多。

但它适用于:无回显无报错环境。

因此非常重要。

布尔盲注的完整利用流程

如何防御布尔盲注?

核心思想依然不变:不要拼接SQL语句。

使用:参数化查询避免用户输入进入SQL逻辑。

关闭:数据库错误信息减少信息泄露。

限制:异常请求频率降低暴力猜测成功率。

采用:WAF防护识别恶意请求。

学习时需要理解什么?

很多人学习布尔盲注时,会疯狂记各种语句。

实际上更重要的是理解:为什么页面会出现真假差异 ,为什么真假差异能够代表数据,为什么可以逐个字符猜测,理解这个逻辑后,面对不同数据库环境,依然能够举一反三。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 8:34:45

C语言之父、UNIX之父-丹尼斯·里奇

1 丹尼斯里奇简介 丹尼斯里奇(Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日),出生于美国纽约州布朗克斯维尔,毕业于哈佛大学,现代计算机科学奠基人之一,计算机科学家。他对C语言和其…

作者头像 李华
网站建设 2026/6/4 8:33:57

手机号定位查询终极指南:3秒快速获取归属地与地图展示

手机号定位查询终极指南:3秒快速获取归属地与地图展示 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirr…

作者头像 李华