堆叠注入 - 定义
堆叠注入(Stacked Injections)
一堆SQL语句(多条)一起执行
在MySQL中。主要是命令行中,每一条语句结尾加‘ ;’表示语句结束。这样我们就想到了是不是可以多语句一起使用。
堆叠注入 - 原理
在‘ ;’结束一个SQL语句后继续构造下一条语句,使多条语句顺利执行,这就是堆叠注入。
思考:union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?
union或者union all执行的语句类型是有限的,只可以用来执行查询语句,而堆叠注入可以执行任意的语句。
注意:场景少,但是威力大!
堆叠注入 - 局限性
并不是每一个环境下都可以执行,很可能收到API或者数据库引擎不支持的限制,同时权限不足也是面临的主要问题。
真实环境中:
1、通常只返回一个查询结果,因此,堆叠注入第二个语句产生错误或者结果只能被忽略,我们在前端界面是无法看到返回结果的;
2、在使用堆叠注入之前,我们也是需要知道一些数据库相关信息的,例如表明,列名等信息。
堆叠注入实战
实战内容:通过修改数据库用户密码的方式登录账号,之后将该用户的密码啊修改回来
-
以编码的方式修改配置文件以支持SQL多语句查询
image.png
修改前
image.png修改后
image.png这里需要使用md5加密、解密的方式修改密码
image.png image.png
image.png
密码修改前后对比
image.png
网友评论