概述
大家好,我是阿里斯,一名IT行业小白。今天分享的内容是堆叠注入,内容简单易懂,这里环境是php+mysql。
数据库实现堆查询
其实所谓的堆查询就是使用分号隔开同时执行多条sql语句。
第一条语句查询表,第二条查询当前数据库名
select * from user;select database();
第一条查询表,第二条删除表
select * from users;delete from users;
堆叠注入原理解析
大家都知道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');--+
本文注意以php+mysql展开,下方附有参考文章,里面测试了各种数据库,有兴趣的朋友可以去看看。如果想找靶机测试可以从sqlilabs的第38关开始测试,进行练习。
参考文章:
https://www.cnblogs.com/0nth3way/articles/7128189.html
欢迎各位老铁帮忙转发、分享、收藏
最后
以上就是坦率雪碧为你收集整理的mysql 堆叠查询_WEB安全之SQL注入(8)——堆叠注入(Stacked injection)的全部内容,希望文章能够帮你解决mysql 堆叠查询_WEB安全之SQL注入(8)——堆叠注入(Stacked injection)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复