Stached injection – 堆叠注入
原文链接请点击:https://www.cnblogs.com/ruoli-s/p/14208908.html
0x00 堆叠注入的定义
Stacked injection 汉语翻译过来后,称 为堆查询注入
,也有称之为堆叠注入
。堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新的查询或者终止查询,可以达到修改数据和调用存储过程的目的。
0x01 堆叠注入的原理
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。
而 union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all 执行的语句类型是有限的,只可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products,则服务器端生成的sql语句为:
Select * from products where productid=1;DELETE FROM products
当执行命令后,第一条显示查询信息,第二条则将整个表进行删除。
0x02 堆叠注入的局限性
堆叠注入也有其相对的局限性,并不是每一个环境下都可以执行,可能受到API或者数据库引擎不支持的限制,当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些程序。