④sqlilabs的less-3和less-4

我只是一个虾纸丫 提交于 2019-11-27 03:25:42

less-3和less-4都是基于字符型的SQL注入,具体判断方法是使用模糊测试,即在注入过程,输入一些特殊意义的参数等,并尝让应用程序报错,根据报错的信息来进行SQL注入。
其中,输入的任意字符包括单引号(’),双引号(”),反斜线(\),正括号((),反括号())等。

接下来,我们以less-3为例,完成一次基于字符型的SQL注入(less-4的方法一样)。

less-3


原始页面如下:
这里写图片描述

在原始URL后面输入单引号,显示页面如下:
这里写图片描述

页面报错信息如下:

ou have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1'') LIMIT 0,1' at line 1

推测此时后台数据库的SQL查询语句如下:

select ... from ... where id = ('1'') limit 0,1;

为了确认我们的判断,在原始URL后面添加两个单引号(”),得到页面如下:
这里写图片描述

所以,我们可以确定后天数据库的SQL查询语句为:

select ... from ... where id = ('$id') limit 0,1;

那么,在SQL注入过程中,我们需要注意三个问题:

  • ①单引号的闭合;
  • ②括号的闭合;
  • ③注释掉多余的语句;

接下来,我们使用order by 语句查询字段数目:

  • order by 3显示页面正确:
    这里写图片描述

  • order by 4显示页面错误:
    这里写图片描述

所以,当前数据库的字段数目为3.

接下来,我们使用union语句判断能显示在前端的字段。
这里写图片描述

最后,我们一步一步的枚举数据库内容。

  • 枚举数据库名:
    这里写图片描述

  • 枚举当前数据库名:
    这里写图片描述

  • 枚举表名:
    这里写图片描述

  • 枚举列名:
    这里写图片描述

  • 枚举数据项:
    这里写图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!