第五周作业 1.sql盲注原理以及boolean盲注的案例演示 2.sql -base on time盲注的案例演示

本文详细介绍了SQL注入中的盲注和BaseOnTime盲注技术。盲注是在无法直接观察到错误信息的情况下,通过逻辑判断爆破数据库信息的过程。BaseOnTime盲注则利用后端执行时间差异来实现注入。文章提供了具体的操作步骤和实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是盲注?

盲注就是在sql注入过程中,sql语句执行的选择后,报错的数据不能回显到前端页面(后台使用了错误消息屏蔽方法屏蔽了报错)。在无法通过返回的信息进行sql注入时,采用一些方法来判断表名长度、列名长度等数据后来爆破出数据库数据的的这个过程称为盲注。

2.boolean盲注的案例演示

基于boolean盲注主要表现:
1.没有报错信息
2.不管是正确的输入,还是错误的输入,都只显示两种情况(我们可以认为是0或者1)
3.在正确的输入下,输入and 1=1/and 1=2发现可以判断

到pikachu平台下boolean盲注,按照之前的思路输入一个payload vince' or 1=1#,但这样返回的数据并不能判断是否存在sql注入。
在这里插入图片描述在这里插入图片描述
采用sql语句中and的方法,返回正确或错误来构造,按照之前的思路构造一个SQL拼接:
vince' and extractvalue(0,concat(0x7e,version()))# 输入后根据返回的信息判断之前的思路不再适用。
在这里插入图片描述
来到mysql来演示获取数据的逻辑。
输入语句select ascii(substr(database(),1,1))>xx;通过对比ascii码的长度,判断出数据库表名的第一个字符。
在这里插入图片描述
那么通过这个方法,虽然只能通过判断单个字符,我们同样可以使用length来判断表名的长度,判断出长度后就能多次输入payload来爆破出每一个表名的字符。输入语句:select length(database())<xx;判断表名长度为7.
在这里插入图片描述
回到pikachu平台按照之前的逻辑,我们构造语句,如果返回1,那么就会爆出选择的信息,返回0,就会返回 您输入的username不存在! 。按照之前逻辑,输入sql语句: vince' and ascii(substr(database(),1,1))=112#,通过这个方法,就能得到后台数据库的名称的第一个字符的ascii码。同之前的办法,我们也可以获得information_schema.tables里的数据。但在实际操作中通常不会使用手动盲注的办法,可以使用sqlmap等工具来增加盲注的效率。
在这里插入图片描述

3.base on time盲注的案例演示

到base on time盲注下,输入上个演示中设置好的payload vince' and ascii(substr(database(),1,1))=112#,返回的信息发现不存在注入点。那这样就不能进行注入了?但其实可以通过后端的执行时间来进行注入。这里会用到的payload :vince' and sleep(x)#
在这里插入图片描述
打开web控制台,在网络模块下点击重新载入,再设置payload来进行测试,输入payload :vince' and sleep(10)#,找到这个耗时11075ms,大约10秒的get请求,判断后台将输入sleep(10)这个函数执行了,那么这个地方就存在sql注入的漏洞。
在这里插入图片描述
基于时间的延迟,构造一个拼接语句: vince' and if ((substr(database(),1,1)='(猜测点)',sleep(10),null#,输入后,如果猜测真确,那么就会响应1秒,如果错误会立刻返回错误。输入:vince' and if ((substr(database(),1,1)='p',sleep(10),null#,再web控制台下,判断出database的表名的一个字符为p。通过这个办法我们就能逐步向下获取数据。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值