Stached injection -- 堆叠注入

堆叠注入(Stacked injection)允许攻击者通过在SQL语句中添加新查询或终止现有查询,来执行任意语句。它与联合注入的区别在于,堆叠注入能执行更多类型的SQL操作,如修改数据和调用存储过程。本文介绍了堆叠注入的定义、原理、局限性,以及在MySQL数据库中的应用示例和sqli-labs的实战练习。
摘要由CSDN通过智能技术生成

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或者数据库引擎不支持的限制,当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值