【SRC挖掘实录】逻辑漏洞篇

逻辑漏洞篇(1)

——未授权访问,找回密码,短信轰炸


提示:所有渗透测试均是在授权情况下进行,漏洞已修复,且已经对敏感信息进行了脱敏处理,本文内容仅供参考学习,切勿模仿。


前言

常见的OWASP漏洞,通过漏洞扫描工具,大多支持自动化或者半自动化扫描出来,并且传统的安全设备或者防护措施收效甚微。但逻辑漏洞是和系统自身功能和逻辑有关系的漏洞,每一家的漏洞出现可能存在一定的独特性,很难复制或者通过规则脚本和漏扫工具扫描出来,因此逻辑漏洞大多需要配合代码审计和手段测试才可以发现相关漏洞,也是工具无法代替人工的漏洞。


一、什么是未授权访问,找回密码,短信轰炸?

这三个漏洞通常都出现在用户登录界面,是由于开发者未对用户进行严格的身份鉴权和验证导致的漏洞。

未授权访问即用户可以在没有输入正确密码,没有获得授权的情况下访问普通用户或者管理员才能访问的界面。

找回密码漏洞即用户可以通过找回密码这个功能点,未经授权修改自己乃至他人账户的密码。

短信轰炸即服务器对用户发送短信的请求没有进行限制,用户可以在短时间内请求大量短信,大大消耗服务器的短信服务金额。

二、如何搜索这些逻辑漏洞?

一般使用fofa等网络安全搜索引擎进行搜索

常用搜索语句:body=“忘记密码” && body=“注册” && title=“登录” && country=“CN”

在这里插入图片描述

三、SRC挖掘实录

1,进入登录页面

发现存在忘记密码和注册模块,于是测试是否存在找回密码逻辑漏洞
在这里插入图片描述

2,注册两个用户

分别为
账户:188xxxx8300 密码:xx123456
账户:139xxxx9020 密码:xx12345
提示:一般进行漏洞测试时,不得以业务中存在的账户进行测试,如需要账户应自行注册或使用对方提供的测试账户

3,发现未授权访问漏洞

(1)测试发现当我们输入错误密码时点击登录时,返回包中存在code=1
在这里插入图片描述
(2)当我们输入正确密码时,返回包中存在code=0
在这里插入图片描述
(3)那么当我们输入错误密码,可以拦截返回包,将code值修改为0,发现成功绕过验证,登陆成功
在这里插入图片描述
在这里插入图片描述

4,发现找回密码漏洞

当我们修改密码时,如果输入正确的手机号和验证码,返回包会返回code=0和user_id=xxxx,xxxx明显是一个有规律的数字,而后续的改密码操作也是依据user_id进行修改,如果我们把返回包的user_id进行修改,就可以修改别人的密码,从而完成登录。
(1)修改密码,发现第一个账户的user_id=2669,第二个账户的user_id=2670
在这里插入图片描述
在这里插入图片描述
(2)尝试使用账户1修改账户2的密码,此处故意输成错误的验证码也不影响,只需要将返回包的code改为0即可
在这里插入图片描述
(3)将此处的underfined改成账户2的uid:2670
在这里插入图片描述
(4)发现成功跳转到了修改密码的界面
在这里插入图片描述
(5)修改密码为666666,发现此时uid已经成功变成了账户2的2670
在这里插入图片描述

(6)使用新密码进行登录,发现成功登录,那么由于uid已知,且是有规律的数字,就可以使用此方法修改之前任意用户的密码
在这里插入图片描述
在这里插入图片描述

5,发现短信轰炸漏洞

(1)在忘记密码处,用户注册处都存在发送短信的功能点
在这里插入图片描述
在这里插入图片描述
(2)点击发送验证码并抓包,将包发送至重发界面,发现服务器没有对发送间隔进行限制可以无限制进行短信发送

在这里插入图片描述

四、如何防御上述的逻辑漏洞呢

其实观察上面的渗透过程可以发现,主要问题就出现在用户可以修改返回凭证和没有对用户的请求进行限制
如果从用户的加密认证cookie中获取当前用户的id就可以防止攻击者对其修改,或在session、cookie中加入不可预测、不可猜解的user信息,这样即使攻击者修改了返回包的信息,但在对cookie值进行验证时,依然无法通过验证
同样的在短信发送功能点加上发送间隔或者发送需要输入验证码,同样也可以防止用户对短信资源的过度消耗。

五、总结

以上就是今天要讲的内容,本文仅仅简单介绍了一些简单的逻辑漏洞,更多的常见的逻辑漏洞如支付漏洞,水平越权,垂直越权,并发等大体逻辑也近似相同,篇幅有效,下次再说。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值