SQL注入-布尔盲注

article/2025/9/13 16:43:28

页面没有显示位 , 没有报错信息 , 只有成功和不成功两种情况时 , 可以使用布尔盲注

本次以 SQLi LABS 第9关为案例进行讲解

布尔盲注常用的两个函数(我觉得)

length('abc')  -- 判断字符串长度

substr('abc',1,1)  -- 截取字符串,从第1个字符开始截取,截取1个

 

第一步,判断注入类型

先正常输入一个?id=1 , 正常登录 you are in

我们再给一个不存在的id , ?id=-1 , id肯定不能为负数,数据库查不到,肯定是登录不成功

只有登录成功和失败两种情况 ,  页面没有显示位也没有报错 , 满足布尔盲注的条件

接下来测试注入点 , 已知id=1时可以正常登录 , 我们给它加个单引号' , 看会不会对结果造成影响

登录失败 , id=1正常登录 , 但加了个单引号' 就登录失败 , 说明单引号' 会影响SQL的执行,即 存在注入

我们再加一个true , 使SQL恒成立 , 又登录成功了

改成false , 使SQL恒不成立 , 又登录失败了

至此 , 我们可以确定 , 后端的SQL使用单引号' 来包裹参数 , 固 单引号字符串型注入

第二步,脱库

我们使用 length() 判断当前使用的数据库的名字的长度

?id=1' and length(database())>1 -- a

如果数据库名字的长度大于1 , 那上面的 length(database())>1 的结果就是 true , 也就是这样

?id=1' and true -- a

 使SQL恒成立 , 从而登录成功

长度从1开始测试 , 每次加一个长度 , 当长度不满足条件时 , 比如

?id=1' and length(database())>8 -- a

如果长度不大于8 , 那 length(database())>8 的结果就是 false , 也就是这样

?id=1' and false -- a

使SQL恒不成立 , 从而登录不成功 , 由此我们可知 , 数据库名字的长度为 8

判断完长度以后 , 我们再猜数据库的名字 

?id=1' and substr(database(),1,1)='s' -- a

使用substr() 截取数据库名字的第1个字符,猜是不是 's' 这个字符 , 如果是 , 那 substr(database(),1,1)='s' 的返回结果就是 true , 变成下面这样

?id=1' and true -- a

使SQL恒成立 , 从而登录成功

如果不是 's' 这个字符 , 则会登录失败

猜中第1个字符以后 , 再猜第2,3...个字符 , 直到猜出整个名字

而后根据此方法 , 可猜出整个数据库的信息(可能时间会比较长...)


http://chatgpt.dhexx.cn/article/DmhuJwC6.shtml

相关文章

SQL注入原理-时间盲注

小伙伴们大家好!本期为大家带来的是SQL注入原理之时间盲注。 目录 使用环境 常见函数与语句 sleep()函数 if语句 substr()函数 ord()函数 length()函数 实战演示 1、判断是否存在注入点 2、使用时间盲注爆出数据 1、爆出当前数据库名的长度 2、爆出数…

sql注入之盲注相关知识

盲注 一.概念理解: 盲注(Blind SQL Injection ),就是在 sql 注入过程中, sql 语句执行之后, 数据不能回显到前端页面,需要利用一些方法进行判断或者尝试。 二.盲注基本条件: 自己可以控制输入 原程序要执行的代码拼接了用户输入的数据。 …

盲注--理论知识

盲注的简单定义: 我们在查询过程中,页面只有两种情况:“true”和“false”,要么有,要么没有;查询表的记录和语句错误也不会显示。这种状况下的注入,称为盲注。 盲注的关键点: 根据…

布尔盲注怎么用,一看你就明白了。布尔盲注原理+步骤+实战教程

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《网络安全快速入门》 布尔盲注 一、适用环境二、盲注步骤三、原理分析1. 长度判断原理2. 穷举字…

SQL盲注(原理概述、分类)

盲注原理 盲注的分类 盲注常用函数 一、SQL盲注概述 盲注:即在SQL注入过程中,SQL语句执行查询后,查询数据不能回显到前端页面中,我们需要使用一些特殊的方式来判断或尝试,这个过程成为盲注 1.如果数据库运行返回结…

盲注

目录 1、注入攻击的本质 2、盲注的介绍 (一)布尔盲注 (二)时间盲注 3、盲注常用方法 (一)length()函数 (二)substr()截取字符串…

SQL注入-盲注(布尔盲注与时间盲注)

目录 一、什么是盲注 二、盲注的分类 三、利用盲注的前提条件 四、盲注的优缺点 五、基于布尔类型的盲注 1.什么情况下使用布尔类型的盲注 2.使用布尔类型盲注的操作步骤: 3.布尔类型盲注的操作过程(以获取当前数据库为例) 4.使用其他…

详述ROWID的原理及其使用

ROWID基础概念 在Oracle内部,每个数据表都有一个伪列ROWID,用于存放被称为ROWID的二进制值。每个ROWID代表了一行数据的存储地址。物理ROWID能够标识普通数据表中的一行信息。其中ROWID类型只能存储物理内容,而UROWID(universal rowid)类型可…

Oracle中ROWNUM伪列和ROWID伪列的用法与区别

做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两个伪列的用法与原理,同样还是以scott用户的…

Silverlight MMORPG WebGame游戏设计(二)--通讯协议之惑

晚上看到我在silverlight webGame上的导师"深蓝色右手"拿到 荣誉,觉得他名至实归。回想自己2010过年来到北京忙于一些琐屑的事情,好久没有动手写我的web传奇了。 去年在群里说我过年要开源我的Web传奇,写一些服务端的文章。后来我发…

amf webgame

一篇来自职业欠钱哥哥的东西,很有帮助。 这两年WebGame比较火,WebGame中,前端用Flash表现比较多,而服务器端依然是Web应用。 不少产品已经开始用AMF(Action Message Format)来取代标准的HTTP交互。&#xf…

webgame《天龙诀》完整网页游戏源码

webgame 天龙诀源码,网页端使用了Flash游戏引擎,服务端c开发,解压后488mb,仅供学习参考,请勿用于商业用途。 天龙诀剧情情节扣人心弦,让各位玩家身临其境,化身门派高手经历艰难险阻、感受受生死…

[转]用python来开发webgame服务端(4)

[刺鸟原创文章,转载请注明出处] 前面的工作都已准备就绪,现在我们得来看看服务端怎么和客户端之间进行通信了,Python和FLASH之间的通信,我整理为以下3种: 1、用现成的协议及类库处理,比如:py…

[转]用python来开发webgame服务端(2)

[刺鸟原创文章,转载请注明出处] 就在刚才,我们用基于python下的Twisted库写了一个简单的socket服务器,不知道它的性能和基本的承载到底如何呢?接下来,我们作一个简单的测试。 说是简单的测试,一点也不假…

转:: 刺鸟:用python来开发webgame服务端(1)

来源:http://ciniao.me/article.php?id9 --------------- 刺鸟原创文章,转载请注明出处 在开始之前,先简单描述一下项目的特点:我要实现的是一个mmorpg的webgame,地图上需要看到其他的玩家,战斗系统采用…

转:: 刺鸟:用python来开发webgame服务端(4)

来源:http://ciniao.me/article.php?id14 --------------- 刺鸟原创文章,转载请注明出处 前面的工作都已准备就绪,现在我们得来看看服务端怎么和客户端之间进行通信了,Python和FLASH之间的通信,我整理为以下3种&am…

[转]用python来开发webgame服务端(3)

[刺鸟原创文章,转载请注明出处] 在之前的准备工作中,我们已经建立了一个socket服务器,并且经过了简单的测试,得到的结论是python可以满足我们的需求,那么接下来,我们要解决的是身为webgame服务端必须的几个…

转:: 刺鸟:用python来开发webgame服务端(2)

来源:http://ciniao.me/article.php?id10 --------------- 刺鸟原创文章,转载请注明出处 就在刚才,我们用基于python下的Twisted库写了一个简单的socket服务器,不知道它的性能和基本的承载到底如何呢?接下来&#…

转:: 刺鸟:用python来开发webgame服务端(3)

来源:http://ciniao.me/article.php?id11 --------------- 刺鸟原创文章,转载请注明出处 在之前的准备工作中,我们已经建立了一个socket服务器,并且经过了简单的测试,得到的结论是python可以满足我们的需求&#x…

用python来开发webgame服务端(4)

http://ciniao.me/article.php?id14 前面的工作都已准备就绪,现在我们得来看看服务端怎么和客户端之间进行通信了,Python和FLASH之间的通信,我整理为以下3种: 1、用现成的协议及类库处理,比如:pyamf …