网络安全菜鸟学习之提升篇——sql(一)

从这篇文章开始,我们就加入了漏洞提升的部分了。这一篇我们来讲一讲mysql注入的一些骚操作。
之前我们来学习SQL注入的时候说过,SQL注入的本质就是让数据库执行我们的SQL语句。那么我们SQL注入是不是只要满足能够执行就行了?之前我们都是写的http://127.0.0.1/sqli-labs-master/Less-1/?id=-2' union select 1,password,username from users limit 2,1--+
先不说麻不麻烦,就说防范而言别人如果对password和username关键字有过滤不就凉凉了。(“对password和username关键字有过滤”等讲到waf的时候大家就懂了)
于是我从access偏移注入中领悟到了这种写法(access偏移注入后面会讲):
http://127.0.0.1/sqli-labs-master/Less-1/index.php?id=-2 'union select * from security.users--+--+
先不讲原理,我们先来看看效果。在这里插入图片描述
(在这里我们可以清楚的看见我们的账号和密码。)
好,我们来讲一下原理。
在基础篇的时候我们讲过:union连接的语句查询时需要左右的字段数相同。
我们在做这个实验的时候测试过它左边是3个字段数右边也是。所以说我们select * from security.users的时候它左右是相同的。
那么如果我们遇到不同怎么办?很简单加呗我们:select 1,* from security.user
那么有人就会说这也太鸡肋了,左边查询的字段数如果再小点不就废了?但是不妨碍我们理解这种思想。
看到这里大家会不会想——到如果我们在后面加一个再加一句sql语句会如何?
例如http://127.0.0.1/sqli-labs-master/Less-1/index.php?id=-2%27;selec 1,* from security.users--+
实际上这个就叫堆叠注入。
我不知道大家有没有报什么安全的教学班,反正我在网上没看到哪个教学班有专门讲。
堆叠注入这个东西其实很简单就是用;让多个语句执行。但是它有一定的限制。就拿这一关举例,我们可以写成http://127.0.0.1/sqli-labs-master/Less-1/index.php?id=-2%27;selec 1,* from security.users--+
但是当我们这样写了后,我们会发现页面并没有反应,这是为什么呢?(如下图)在这里插入图片描述
是不是我们语句有问题呢?
其实不是,这个的问题和源码有关。
如图,我们是用mysql_query()接收的sql语句。而mysql_query()它本身只能执行一句sql语句,所以就会出错。在这里插入图片描述
那么我们应该怎么办?网上有文章说把mysql_query()换为mysqli_multi_query()就可以执行多条sql语句查询。其实这种方法也有问题,mysqli_multi_query()的返回类型为布尔型放在这里根本不行。那么,我们怎么办?
我们总不可能把源码全部改了吧?既然改变不了它,我们就改变自己——换一关不就行了,头别那么铁。
所以,我们换到38关就行了。
来我们再试试。(如图)在这里插入图片描述
为什么它还是没结果呢?
这个时候我们应该想一想它的原理。它原理是执行了多句sql语句。而我们的前端只能回复前面一句sql语句的结果。
估计之前学的好的同学就会想到报错注入。但是,报错注入本质上是一句sql语句。报错也是让那一句SQL语句报错。
那么,这个时候大家这不是很懵圈?
你说这也不行那也不行,那到底它有什么用?
这个时候我们就应该打开思路了,我们既然不能查询。那么我们可不可以删除或者插入?
来,我们来试试http://127.0.0.1/sqli-labs-master/Less-38/index.php?id=1%27;insert%20into%20users(id,username,password)%20values%20(%2716%27,%27a%27,%27a%27)--+
在这里插入图片描述
在这里插入图片描述
插入成功。
总结一下:堆叠注入虽然没法查询,但是它对数据库的破坏性不能小视。
注:堆叠注入的局限性太大了,且注重破坏,建议少尝试。
(ps:马上过年了,祝各位看官新年快乐。过年这段时间我就不更新了,但是还是求各位看官给点评论和关注哦!)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值