Sql-Inject盲注

什么是盲注
在有些情况下,后台使用了错误消息屏蔽方法(比如@ )屏蔽了报错
此时无法在根据报错信息来进行注入的判断。
这种情况下的注入,称为“盲注"
根据表现形式的不同,盲注又分为based boolean和based time两种类型
基于boolean的盲注测试:
没有报错信息
1.不管是正确的输入,还是错误的输入,都只显示两种情况(我们可以认为是0或者1)(真与假)
2.在正确的输入下,输入and 1= 1/and 1= 2发现可以判断。

基于真假的盲注测试
操作:
pikachu里盲注查询栏随便输入一个数字或者字符——提示你输入的username不存在——在查询栏输入一个字符串对应的payload kobe’ or 1=1#点击查询-——提示用户名不存在——在查询栏再次输入kobe’ and 1=1#点击查询打印出正确的输出(因为and 1=1存在为真故而输出为真)——确定后端点存在sql注入——在查询栏输入kobe’ and extractvalue(0,concat (0x7e,version()))#——仍然提示用户名不存在——查询栏再次输入kobe’ and ascii(substr(database() ,1,1) )>113#(其意思为如果返回kobe信息那意味着ascii…后面输入的内容为真,如果没有返回那就意味着ascii…后面所输入的内容为假)——仍然显示不存在——查询栏输入kobe’ and ascii (substr(( select table_name from information_schema.table where table_schema=0,1),1,1)>112#显示输入用户名为假——表示其不成立——在查询栏输入kobe’ and ascii (substr(( select table_name from information_schema.table where table_schema=0,1),1,1)<112#——成立表明要猜测的第一个字符为在ascii表里对应的为哪一个字符
在这里插入图片描述
在这里插入图片描述
基于time的盲注:
基于boolean的盲注在页面上可以看到0 or 1的回显的话,而基于based time的盲注不可以看到回显。
通过特定的输入,判断后台执行的时间,从而确认注入!
常用的Teat Payload:
kobe’ and sleep(5)#
看看输入: kobe和输入kobe ’ and sleep(5)#的区别,从而判断这里存在based time的SQL注入漏洞
判断是否存在操作:在pikachu的SQL-Inject注入的项目里的盲注(base on time)栏目中输入字符或者表达式查看是否有返回——确认无返回——打开浏览器控制台——点击开发者选项——打开网络——重新载入链接——重新测试——查询栏输入kobe’ and sleep(5)#,(sleep是MySQL函数的一种,它可使动作暂停指定时间再去执行。——点击回车——(执行上方所输入的语句,后端暂停五秒再将数据返回前端)显示出请求的时间线——执行函数——存在SQL注入
测真假通过前端返回真或假的状态来判断后端payload的执行情况
延迟时间
测试:
用kobe’and if((suqstr(database(),1,1))=‘p’,sleep(5), null)#,(用if做判断,通过database()把数据库的名称取出来,通过substr将该函数名第一个字符取出来,用取出来的字符与后面字符串’p’进行比较该点为所猜测的点,可以为其它不同的字符)如果前面所取得字符串为后面作比较随意输入的字符,执行操作暂停五秒钟,如果不等于后面随意输入的字符,则表示null,意为假。
操作:在查询栏输入kobe’and if((suqstr(database(),1,1))=‘p’,sleep(5), null)#,点击提交——很快返回结果表明第一个字符串不为后面随意输入的字符——如若过五秒之后再返回结果,证明该if判断条件是正确的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值