我是靠谱客的博主 坦率雪碧,最近开发中收集的这篇文章主要介绍mysql 堆叠查询_WEB安全之SQL注入(8)——堆叠注入(Stacked injection),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家好,我是阿里斯,一名IT行业小白。今天分享的内容是堆叠注入,内容简单易懂,这里环境是php+mysql。

数据库实现堆查询

其实所谓的堆查询就是使用分号隔开同时执行多条sql语句。

第一条语句查询表,第二条查询当前数据库名

select * from user;select database();

a9c694068e70e016fb294678f075d808.png

第一条查询表,第二条删除表

select * from users;delete from users;

243429fa208f31f497336737bc23bd9c.png

堆叠注入原理解析

大家都知道SQL语句默认的结束符是分号(;)。我们可以使用分号同时执行多个sql语句。那我们做一个推理,假如一个网站存在sql注入漏洞,我们使用分号在注入点拼接多个sql语句会不会一起带入数据库执行呢?正是这个推理形成了堆叠注入这个概念!

注入点示例

?id=1;delete from users;

堆注入局限性(php-mysql)

大家都知道,网站后台的查询语句只会返回一个结果,所以我们无法确定我们的堆叠语句是否执行成功。另外还需要注意一个问题,如果我们的网站后台只支持一条sql语句执行,那堆注入不存在了。所以想要支持堆注入还需要网站后台支持执行多条sql语句才可以。如php需要将mysqli_query()函数换为mysqli_multi_query()才可以执行多条sql语句查询。

写代码测试

测试语句

通过测试,可以发现不但查询到了数据而且在数据库也插入了test这条数据

http://localhost/hhs/more_sqlInjrection.php?id=2';insert into user(username,password) values('test','test');--+

b91c2055b29835a263c4cba08a8f9b92.png

本文注意以php+mysql展开,下方附有参考文章,里面测试了各种数据库,有兴趣的朋友可以去看看。如果想找靶机测试可以从sqlilabs的第38关开始测试,进行练习。

参考文章:

https://www.cnblogs.com/0nth3way/articles/7128189.html

欢迎各位老铁帮忙转发、分享、收藏

2d00324ec918f2f714d3b6537820d6a9.png

最后

以上就是坦率雪碧为你收集整理的mysql 堆叠查询_WEB安全之SQL注入(8)——堆叠注入(Stacked injection)的全部内容,希望文章能够帮你解决mysql 堆叠查询_WEB安全之SQL注入(8)——堆叠注入(Stacked injection)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部