sql注入 练手网站_WEB安全之SQL注入(8)——堆叠注入(Stacked injection)

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

数据库实现堆查询

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

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

select * from user;select database();

01a7ad15345085db700c95981a122609.png

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

 select * from users;delete from users;

e7c3254c46b44f000d8370b10046f915.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');--+

3a20782a28aab93d49fc31516ee498b6.png

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

参考文章:

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

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

9a929a14e2949628c811b35b982365c0.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值