我对逻辑漏洞的认知

写这篇文章的时候,属实忐忑。思考良久,迫于压力,只能将毕生所学分享出来。(入行太短也没啥东西)不过最近挖洞的时候,倒是碰到许多有趣的姿势。自我感觉,将一个漏洞利用最大化形成一条攻击链,会比挖到洞更让我有趣。所以特来分享一下我感觉比较有趣的逻辑攻击方式。

个人感觉逻辑漏洞最好的方式,就是凭借你自己的想法去构造一条完美的攻击思路吧。思考的过程其实也是个人进步的过程,学习别人优秀的地方是一种很好的进步,若能将这些东西理解掌握成自己的东西,那便是最好了。

初挖某厂商src

发现这一个点:

这处是一个订购,然后填手机号的地方。这里是有一处验证码的,你填自己账号的手机时验证码会消失。当你填别人的手机号的时候,验证码则会需要,这时候你就需要发送验证码验证了。当时想的这肯定是越权。填别人的手机号,看是否能越权到他人的手机号。

但是这就出现一个问题。验证码的东西,由于是src,爆破肯定不行,验证码是6位的。于是我大胆尝试了一下最不可能的东西,前段验证,我通过修改返回包成功绕过验证!!

其实有的时候,我们可以大胆尝试一下一些不太容易引起别人注意的地方。不要去将目光总放在一眼就能测试的地方,多去看不容易发现的功能点,这里的防护往往很薄弱。我准备了两个账号。因为他这里注册登录,都需要手机号,所以手机号也就相当于你用户的一个身份,之后我用攻击者身份替换它的手机号。通过前段验证,修改掉了验证码的问题,最后成功用别人的账号询价成功。哦对了,当时改数据包,还有一个点也要改:

就是memberid 这个id就是对应别人的账号,必须这个id和手机号对应上才能越权用别人的身份进行操作:

当时我觉得这个越权就可以了,兴奋的交了上去,最后被审核无情的打回,告诉我如果无法获取用户的手机号,无危害。于是当时就很失望,怎么搞怎么搞。想放弃,思考良久,决定去找!,于是我不断去翻,去看可能存在的获取哟用户手机号的地方,终于我发现忘记密码处让我看到了希望,不过漫无目的的爆破手机号实在不可取,我注意到它可以用用户名找回,于是我把目光转到了另一处:

在当时翻找的时候,我发现这个厂商还有一处论坛,和它的web关联:

像这样,上面的就是他们的用户名,当我访问他的主页的时候:

Url地址栏出现了用户对应的id,当时翻找的时候默默把这一点记了下来,然后回到忘记密码处输入用户进去是有部分打码的手机号,将难度缩小了。

但是还不够:

于是我抓取了,输入用户名的返回包,里边的内容给了我希望,我只需要爆破中间4位手机号即可,而且它忘记密码处,输入信息的功能点,也没有验证码,天助我也!

一个攻击思路在我脑海里诞生。我通过论坛,找到用户对应的用户名和id,然后通过忘记密码处输入用户名,看返回包返回的打码手机号,再通过爆破,爆破4位数,成功爆破出用户的正确手机号。再回到越权的点,手机号有了对应的id有了,而且还都是批量获取。最终完成了从失败到最后获得奖励的漏洞发现。

这其中的过程也是让我印象深刻的,不断发现信息,最后整理看如何利用。这一切的组合起来,我觉得才是逻辑漏洞有意思的所在。

到第二处(某平台)

也是经过前期的一些对功能点的摸索,我发现在一处功能点的返回包,返回了一些让我觉得可能会用到的信息。

在订单信息,点击待支付的页面。

(有涉及他人账号隐私的东西就打码有点重)

给大家简述一下上面有用的信息。
有卖家的账号,和id,也有我自己的。其他的一些都是无关紧要,因为它这个平台的用户名有长度规范,太短了不行,所以用户的获取也是很难,但是通过下订单,我成功获取到卖家的用户名,当时我想到的就是知道了用户名爆破密码。

但是它的验证码打掉我的念头,一时间陷入尴尬。但是肯定不愿意放弃,我忽然发现它还有一处app,遂进行尝试,我发现它的app登录没有验证码,不过密码经过了md5处理,但是可以搞!!!

不影响,通过burp自带的解密爆破即可。

所以攻击思路来了,我们去批量下单,然后获取到返回的用户的账号,通过app来进行爆破用户的密码,最后肯定会有弱密码的,因为这个平台的用户量很大,最关键的就是用户名的获取。

其实整个渗透的起因,就是因为返回包的暴露的数据过多,让我产生了想法。遂进行漏洞挖掘,最后形成一条完整的逻辑漏洞攻击思路。

批量下单的补充(修复了)

当时这处批量下单,没有任何防护,而且当你下单的时候,会有足足一小时的时间等待你支付,且不会关闭订单,当你以别人的身份,下订单的时候,会提示你该账号已经被租取了,你就无法租了。
所以我当时想的是批量租账号,使所有的账号都处于被占用的状态,这样我就可以恶意占用所有资源,让别人无法下单。这样你这个平台就丝毫没有用处了,自身的业务无法完成就不gg了,最后也是得到了厂商的奖励。

第三处

想必大家都看过这个:

大佬分享的平安 src 的文章,这个id是不可破解的,当时这个大佬就是在忘记密码处,找到了这个不可破解的加密参数。遂挖到很厉害的漏洞。这一点让我印象深刻,于是当我实战碰到了:

然后我发现在我对商品进行操作的时候,出现了这个参数,于是我就开始寻找怎么获取到这个加密参数的地方。我首先访问自己的商品开始寻找,因为如果我在自己的商品页面找到了和这个参数一样的那基本就成功了一半了。

最后我成功在我的页面全局搜索找到了它,然后我访问别人的页面,

同样出现了这个参数。

于是我进行替换,进行一系列操作,发现成功对别人的商品进行了修改。简单的通过审查元素找到了这处关键点,当时想着既然商品需要这个,那么我们对商品进行别的操作也很有可能调用这一处位置。所以最终成功利用。然后我又在另一家src发现了调用这个参数(因为漏洞详情隐藏只能口述了)。

我发现这个src的平台,也是调用了这个加密参数,于是我就老办法,去寻找一切可能存在这个参数的地方。在一个它的空间页面,我注意到它的 network 某一处,请求的 post 方式带了id 是用户的 id,发现响应的数据,就带了这个加密参数。

于是成功利用id获取到这个加密参数,最终实现了越权操作。最后我发现它这个系统好多处都是利用这个加密参数。最终我成功通过,审查元素,看 network 加载的数据请求,获取到不同的加密参数,最终挖到4.5处越权。获得奖励:

我在发现了它是调用了这种参数来进行加密参数的时候,我就会去访问别人的主页,看是否能在它的主页获取到,因为一到成功拿到这个,基本越权就是稳稳当当的。

然后我发现它其他系统也是调用了这个,这里更简单,我直接审查元素,把它每一处点都看了一遍最后成功的在收藏夹发现了这个参数(厂商修复所以看不见了)。于是我就肯定存在越权,然后我回到我的收藏夹进行操作,来进行替换最终成功越权。

一切一切的源头都是因为看了大佬的文章,让我印象深刻的一个记忆点。然后在后面的实战又再次遇见,遂产生一系列想法。

思考

对逻辑漏洞的想法,究竟怎么样的漏洞才算是真正的逻辑漏洞呢?越权?重置密码?其实最后还是要定位到自身,你觉得这个漏洞是逻辑漏洞,那么它就是。为什么非得要看审核,因为每个人思考问题的方面都不是一致的,不同的问题会有不同的看法。所以自己最后自己琢磨出来的能造成危害的,这才是逻辑漏洞的意义所在。
在这里分享一个案例,希望和大家一起讨论(这个案例虽然被pass掉了),但是觉得还是有一定影响的,就当个故事给大家说一下吧。

某天,浏览网站登录自己的账号发现了:

当时我的小信封有了很多红点,然后我把注意力放在了这个上面,还以为自己火了呢,后来点进去看了一看,发现并没有~~后来冷静分析猜测了一下,有个想法。可能某个用户手滑点了关注的或者喜欢的按钮,然后又取消了,所以造成了这个结果。

验证我的猜想,很简单,我准备两个账号来点赞试一试看看可不可行。

我是先拿自己的账号发布了一个作品,然后就可以发现它这里有喜欢和关注的按钮。

我用另一个账号的身份点击了喜欢和关注,然后我又取消了。

最后我用burp调低了线程,来进行跑包(其实可以自己手动)疯狂按住就行,它中间弹出了频率过快~不过我刷新页面重新载入就用可以了,

就这样重复了好多次好多次,然后,我登录我的受害者账号,多出了很多很多的信息。

但是当你点击进去又是没有的。想象一下,当你登录自己 的账号发现消息有99个红点的时候,还以为自己作品火了!已经幻想到成名的日子了,但是当你点进去一看,发现全都是泡沫~~像**做梦一样。

这样落差,我当时觉得就算危害了!就好比你qq99+的消息,点进去发现是腾讯新闻的推送一样难受,这种感觉肯定想把他卸掉。

所以这处的漏洞,我觉得也算是逻辑漏洞,危害嘛,我们可以让全平台的用户都是99+的小红点~~万一有的用户有我说的这种心理,岂不是糟糕。就会对产品造成不好的影响啊。一个产品的口碑用户体验感也很重要啊!

以上,就是我当日yy出来的小故事,当做一个趣事给大家分享出来。

后记

以上就是,我对于逻辑漏洞的一些分享和心得,我觉得逻辑漏洞,不要总去看 id 的修改。这种常见的地方人家一定已经发现过了,多去看那些不容易发现的功能点,碰到加密参数,也不要放弃,坚持一些说不定就会有所收货,文章可能有点基础,也是本人的所学分享了。

感谢阅读!希望有对逻辑漏洞感兴趣的师傅找俺一起讨论讨论呀,看看逻辑漏洞到底能玩出什么花来,逻辑漏洞有趣的还是思考的过程呀!