首页 > 其他分享 >堆叠注入

堆叠注入

时间:2023-01-18 17:44:06浏览次数:34  
标签:语句 堆叠 sql query 执行 注入

一、堆叠注入原理

** stacked injection **
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。

二、堆叠注入触发条件

堆叠注入触发的条件很苛刻,因为堆叠注入原理就是通过结束符同时执行多条sql语句,这就需要服务器在访问数据端时使用的是可同时执行多条sql语句的方法,例如php中的mysqli_multi_query函数。但与之相对应的mysqli_query()函数一次只能执行一条sql语句,所以要想目标存在堆叠注入,在目标主机没有对堆叠注入进行黑名单过滤的情况下必须存在类似于mysqli_multi_query()这样的函数,简单总结下来就是

1、目标存在sql注入漏洞
2、目标未对";"号进行过滤
3、目标中间层查询数据库信息时可同时执行多条sql语句

堆叠注入的局限性:
堆叠注入的局限性在于并不是每一个环境下都可以执行,可能受到API或者数据库引擎不支持的限制,当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些程序。

标签:语句,堆叠,sql,query,执行,注入
From: https://www.cnblogs.com/qianyuzz/p/17060314.html

相关文章

  • Spring setter方法注入
    我们也可以通过setter方法注入依赖项。 <bean>的 <property>子元素用于Setter注入。在这里,我们要注入 原始和基于字符串的值从属对象(包含对象)集合值等通过setter方......
  • Constructor注入(具有相关对象)示例
    在此示例中,我们使用 map 作为具有Answer和User的答案。在这里,我们将键和值对都用作对象。答案具有自己的信息,例如answerId,答案和postedDate,用户具有自己的信息,例如userId......
  • Constructor注入和Map示例
    Constructor注入和Map示例在此示例中,我们使用 map 作为具有已发布用户名答案的答案。在这里,我们将键和值对都用作字符串。像前面的示例一样,它是论坛的示例,其中 一个问......
  • Constructor注入以及示例
    我们可以在Spring框架中通过构造函数注入集合值。 constructor-arg 元素内可以使用三个元素。可以是:ListSetMap每个集合可以具有基于字符串和基于非字符串的值。在......
  • 具有依赖对象的构造函数注入
    如果类之间存在HAS-A关系,则首先创建依赖对象(包含对象)的实例,然后将其作为主类构造函数的参数传递。在这里,我们的场景是员工HAS-A地址。Address类对象将称为从属对象。首......
  • 依赖项构造方法注入示例
    我们可以通过构造函数注入依赖项。 <bean>的 <constructor-arg>子元素用于构造函数注入。在这里,我们要注入原始和基于字符串的值从属对象(包含对象)集合值等注入原始值......
  • 小满nestjs(第二章 IOC控制反转 DI依赖注入)
    在学习nestjs之前需要先了解其设计模式IOCInversionofControl字面意思是控制反转,具体定义是高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该......
  • dll注入 进程中注入WPF dll
    dll注入进程中注入WPFdll介绍尝试一下向进程中注入WPF应用程序为什么直接注入不可以失败的原因如下.NETDLL(也称为托管DLL)不能注入到尚未加载.NET运行时的远程......
  • 学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
    2023-01-14一、Spring底层IOC实现1、IOC:将对象的控制器反转给Spring2、BeanFactory与ApplicationContext(1)BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,是面向......
  • Spring 依赖注入
    依赖注入(DI)是一种设计模式,可以从编程代码中删除依赖,以便可以轻松管理和测试应用程序。依赖注入使我们的编程代码松散耦合。为了更好地理解DI,让我们首先了解依赖关系查......