web安全之SQL注入(三)

文中详细讲解web安全之SQL注入,通过文中内容更加深入的掌握SQL注入的原理及检测方法,从而更好的用于渗透测试中;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。

web安全之SQL注入(三)

盲注入

在页面中不会显示数据库信息,一般情况下只会显示对与错的内容。

原理

布尔型盲注入主要是通过substring这个函数来进行判断,来获取库名、表名及更多的敏感数据。

这个函数的作用主要是用于某个值的位数。

select substring('longwaer',1,4)

在这里插入图片描述
这里就可以看出取出了前4位的值,因此在这个位置我们可以将MySQL的内置函数放入,同样可以进行数据获取。

SELECT substring(database(),1,1)

在这里插入图片描述
然后我们在将取出的值使用if进行一个判断,就可以成功获取敏感信息。

select if(substring(database(),1,1)='d',1,0)
select if(substring(database(),1,1)='v',1,0)

可以看出当我们数据库第一位获取正确时,则会返回1,当我们获取错误时,则会返回0
在这里插入图片描述
在这里插入图片描述
因此在我们了解原理后,再进行代码分析。

代码分析

这里我在图片中描述有的错误,是输入的参数大于0,且这个值存在,就返回存在,输入的值不存在,就返回不存在。
在这里插入图片描述
通过代码分析,我们如果使用之前的语句来获取数据,页面不会有任何数据的返回。
盲注入有两种方式来进行判断,通过页面返回不同,来进行判断,称为布尔型盲注入;通过延时来判断,称为延时注入。

布尔型盲注入

这种我们同样可以使用之前的判断方式来判断页面是否存在注入。

1' and '1'='1
1' and '1'='2

通过页面不同的提示来进行判断。
这里我们同样也可以使用if来进行判断。

1' and if(1=1,1,0)#
1' and if(1=2,1,0)#

在这里插入图片描述
在这里插入图片描述
因为使用联合查询,无法获取数据,所以我们则可以使用substring这个函数来进行判断。从而获取敏感数据。

1' and if(SUBSTRING(database(),1,1)='d',1,0)#  
1' and if(SUBSTRING(database(),1,1)='v',1,0)# 

在这里插入图片描述
在这里插入图片描述
这样我们就可以依次获取库名,表名,以及账户密码等敏感数据。通过手工速度较慢,所以我们可以借助burp或编写脚本跑出我们所需的数据。
这是我们有回显的时候,可以通过页面提示信息不一致来判断,但如果我们没有回显,则需要使用延时注入来进行测试。

延时注入

当页面没有任何的提示时,则需要这种方式来进行测试。

1' and sleep(5)#

在这里插入图片描述
当没有任何信息回显时,我们则可以通过下面的方式来获取数据库长度,通过执行的时间来确定。

1' and if(length(database())<5,sleep(5),0)-- 

在这里插入图片描述
当发现存在这种无回显盲注入时,可配合SQLMAP工具来一起使用,从而快速的获取敏感信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全局变量Global

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值