不再显示错误的盲注

本文深入探讨了SQL盲注,包括不再显示错误的情况。文章通过实例介绍了Boolean盲注和Time-Based盲注的技巧,如利用错误判断数据库名长度、猜解数据库名和表名、时间延迟等方法,揭示了在没有错误回显时如何进行有效的SQL注入攻击检测和防护。
摘要由CSDN通过智能技术生成

不再显示错误的盲注

意外的收获

我在对lesson1重新测试单双引号闭合的时候发现了一个有趣的问题。

lesson1sql源码是

SELECT * FROM users WHERE id='$id' LIMIT 0,1

但是我惊讶的发现我单纯用双引号也能正确的查询

4.png

原来如此

下面用这样的table来进行实例讲解.

id name
0 admin0
1 admin1

因为SQL在遇到这种情况是会自动转换为int类型比较,如果该字段是int的话。

select * from `user` where id='1"'
--+ 等价于
select * from `user` where id='1'

返回的结果是admin1,而如果是这样的呢?

select * from `user` where id='"1'
--+ 等价于
select * from `user` where id='0'

返回的结果是admin0

–+的问题

而关于这个 –+ 的注释问题,我之前进入了一个误区,这里记录一下。

我以为在双引号后面加注释就行了。

5.jpg

SQL语句实际上是这样的

SELECT * FROM `user` WHERE id='1 --+'
--+ 其实跟上面的是同理

因为会自动转成int而且我用的是双引号,并没有与前面的单引号闭合,所以被当成"1 --+"的字符串处理了。

查出来的自然是admin1

varchar不会自动转换

注意这是int类型,SQL遇到这样的情况才会自动转换,如果是varchar类型自然就不会做这样的处理了。

lesson8 GET-Blind-Boolean Based

这是基于bool类型的注入

同样的第一步先判断是单引号还是双引号闭合

首先用单引号闭合,就是在这里引出了开头的问题。因为我发现用单引号闭合进不去。

6.jpg

双引号却可以,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值