SQL盲注-实战布尔盲注

环境:win10

靶场:sqli-labs-master

本实验仅供学习参考!!!

1 布尔盲注

盲注就是在 SQL 注入过程中, SQL 语句执行后,查询到的数据不能 回显到前端页面。此时,我们需要利用一些方法进行判断或者尝 试,这个过程称之为盲注。而布尔盲注就是SQL 语句执行后,页面 不返回具体数据,数据库只返回0 或者 1 (真 or 假)。 类似于无法开口说话的人,只能通过点头和摇头来告诉你答案的正 确与否。

1.1 布尔盲注的特性

在页面中,如果正确执行了用户构造的 SQL 语句,则返回一种页 面,如果 SQL 语句执行错误,则执行另一种页面。基于两种页面, 来判断 SQL 语句正确与否,达到获取数据的目的。
正常的页面:
查询不到的页面:

1.2 布尔盲注的基本流程

1 、判断是否存在注入:sql注入必须的过程
2 、获取数据库长度:因为盲注无法回显数据,所以我们需要猜数据库名的长度,为下一步猜测数据库名做准备。
3 、逐字猜解数据库名
4 、猜解表名数量
5 、猜解某个表名长度
6 、逐字猜解表名
7 、猜解列名数量
8 、猜解某个列名长度
9 、逐字猜解列名
10、判断数据数量
11 、猜解某条数据长度
12 、逐位猜解数据

2. 攻击过程

2.1 判断是否存在注入

第一步:正常查询,返回 True (语句执行成功)或者返回 False (语 句执行成功没有查询到内容)
第二步:输入引号进行看页面变化,页面返回 False ,可能存在漏 洞,也可能没有查询到内容
第三步:利用 and 进行判断,比如: 1 and 1=1 1 and 1=2
### SQLi-Labs布尔盲注教程及实例分析 #### 什么是SQL SQL是指在SQL注入过程中,当SQL语句执行的结果无法直接回显到前端页面时所采用的一种攻击方式。此时需借助特定的方法来推断数据库结构或数据内容[^1]。 #### 布尔盲注原理 对于基于布尔的SQL而言,其核心在于通过构造不同的查询条件使得应用程序返回两种不同类型的响应——即真/假状态。通常情况下,这涉及到向服务器发送一系列请求并观察应用行为的变化,以此推测出隐藏的信息。例如,在某些场景下,如果输入被正确解析,则会得到正常页面;反之则可能触发错误提示或其他异常情况。 #### 实战演练:Less-8 (Boolean-based Blind) 考虑`http://127.0.0.1/sqlilabs/Less-5/?id=1'`这样的URL模式,其中参数`id`用于指定要检索的文章ID。假设存在如下漏洞: ```sql SELECT title, content FROM articles WHERE id = '1' ``` 现在尝试构建一个简单的布尔测试用例: ```bash ?id=1 AND 1=1 --+ ?id=1 AND 1=2--+ ``` 第一个链接应该能够成功加载文章详情页,因为表达式始终成立; 而第二个链接由于逻辑上不成立,可能会导致空白页面或者其他形式的反馈差异。 进一步深入挖掘表名长度: ```bash ?id=1 AND LENGTH(database())>X--+ ``` 不断调整`X`值直到找到确切大小为止。 最后确定具体字符组成: ```bash ?id=1 AND ASCII(SUBSTRING((SELECT table_name FROM information_schema.tables LIMIT 1),N,1))>=M--+ ``` 这里分别代表第几个字节(`N`)以及对应的ASCII码范围起点(`M`)。 以上操作均依赖于目标站点如何处理这些非法输入,并且每次都需要仔细对比前后端表现区别来进行下一步猜测。 #### 防护措施建议 为了避免遭受此类攻击,开发人员应当遵循安全编码实践,比如使用预编译语句代替动态拼接SQL字符串、启用WAF(Web Application Firewall)防护机制等手段加强防御能力[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dkk11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值