sqlserver数据库布尔盲注_SQL注入之基于布尔的盲注详解

本文详细介绍了SQL注入中的布尔盲注,通过Web页面的True/False响应来推测数据库信息。通过Python代码示例展示了如何利用布尔盲注获取数据库名称、表信息、列信息以及数据,解释了各个步骤的SQL语句构造和Python脚本编写,从而揭示了布尔盲注的完整过程。
摘要由CSDN通过智能技术生成

基于布尔的盲注

Web的页面的仅仅会返回True和False。那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息。

由于本次是布尔注入,手注无法完整地进行脱裤。所以在本节需要编写大量的代码来帮助我们进行SQL注入,得到数据。所以在这章里面会有很多的Python代码。

本次的示例就是Less-8。

通过进行下面的语句的注入测试

http://localhost/sqlilabs/Less-8/?id=2'

http://localhost/sqlilabs/Less-8/?id=2"

http://localhost/sqlilabs/Less-8/?id=2\

进行测试的时候,只有在id=2'的时候页面无法显示内容。输入的语句如果符合要求,页面就会显示内容,但是显示的内容都是一样的。这种情况下页面上的输出对于我们来说是完全没有用的,包括SQL执行出错的信息都不会在页面上显示。这种情况下之前的通过执行SQL语句然后在页面上显示SQL执行之后返回的信息完全是不可能的啦。这种情况下就是一个典型的SQL盲注了。

我们通过页面是否显示内容来判断我们的SQL语句是否正确,进而猜解数据库的信息。

通过上面的注入测试,我们知道后台的SQL的注入语句的写法是:

select field from table where id='userinput'

id参数是被单引号包括的。其他的信息我们就无法得到了。

得到数据库的名称

在得到数据库的名称之前,首先需要得到数据库的长度

http://localhost/sqlilabs/Less-8/?id=2' and length(database())>1 %23

http://localhost/sqlilabs/Less-8/?id=2' and length(database())>2 %23

以此类推

.....

发现当值为8的时候,页面就没有显示。那么说明database()的长度是8。

得到了datbase()的长度之后,接下来就是得到database()的名称了。

这个时候就不能完全靠手注了,必须编写Python代码来完成。其中最主要就是进行大量的注入测试来判断程序执行正确和出错的时机,然后断定当前的值可能就是正确的值。

下面就是一个简单的使用Python来进行布尔盲注获取数据的代码。

def ge

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值