SRC另类思路分享:不受限制的资源调用

2021123013595390

1.进入正题

相信在各位的学习、生活中都遇到过这样的页面

18eba21f1900e1816ce9bebdd00888f2
此处我以某厂商的云服务购买为例,由图可知,需要我们输入姓名、身份证、联系电话等。如果按照我们普通的挖掘思路,此处可能存在的漏洞是不是有SQL、XSS、越权查看他人提交信息、CSRF等等,其实此处可以利用一种新的思路,我称之为不受限制的资源调用。

2.漏洞测试

此处我们先输入自己的真实姓名+身份证号,然后把身份证号的最后一位7,改成5,进行提交,此时可以发现,提示我们需要输入正确的身份证号码,同时Burp没有任何数据包请求,判断此处是前端做了校验,校验用户输入的身份证号是否能够与规则匹配。同时可在JS文件中找到相应规则,此处校验不通过会返回false阻止我们进行提交。

ae4ddb70f5230baa47d7b6953ec1c9a695d339376fa5abd7fc518282aeb867e7
console有如下结果:

09eba5e90dac9871d7f3f32049b16ac3
所以此时,我们需要把身份证号改成一个正确的身份证号,把姓名也改成正确的姓名,同时进行提交,此时可见,在我们的Burp中出现了我们想要的数据包,包含了我们的姓名、身份证号、联系电话等等。此时我们再将数据包中的6改成5,也就是把真实身份证号又改回去一个不存在的身份证号,然后抓取返回包,可见,此时后端又做了一个验证,告知我们:身份证验证错误。

aa799c06cd4c1d117880f387d5e85c6e
错误图:

659184d1a2b221ede8004edc3a5d60b4
3.原理剖析

此时先不着急往下进行测试,我们先来了解一下身份证验证的原理:

a0eab0923798e2612a563dea140c631e
这里我做了一张流程图,假如我此时是一名开发者,我需要给我的APP加上实名验证功能,那么我可以直接去向最上层的那个机构申请接口吗?不能,因为我不是企业,而且我也不是属于它直系应用的开发者。我只能向他的下级,也就是腾讯、阿里、百度这样的企业去申请API接口,同时这些公司会把我们提交的数据,提交给最上层的那个机构,并且根据返回的数据,给我们返回的数据。也就是身份证号验证成功,或者二要素验证不一致。

我们再来说一下直系应用与企业的区别,直系应用去申请二要素验证,一般是不用花钱的。而我们作为个人开发者,或者企业,去调用那个接口,其实是要钱的。我们在网上随便找一些关键字,可以看到,价格其实还是蛮高的。

7de83d5883a6f08df6a65e78818c0a75015f96e4bb504c58791f21a3d3b972c1
4.深入理解

那么此时是不是可以利用楼上所示的接口?去做一些事情呢,我这里假设要对别人进行社工,那么他的姓名是XXX,身份证号的后四位或者后六位我不知道,就可以对他进行一个爆破。此时我们勾选上最后四位,然后把数值调整到0000-9999之间,此时根据返回包的长度大小、可判断身份证号码是否正确。

74f247b888847700fb519d9011ab5f44
此处可见,我们利用某平台开放的实名认证接口,可以完成我们自己想做的身份证二要素验证,同时由于厂商没有做限制,便可以无限消耗此厂商的资源,从而达到我们的目的。像本文中的二要素验证,以及短信验证,还有活人检测,其实都是基于Money的,在我们的SRC挖掘过程中,也可以去尝试一下这些点。

本文来自投稿,不代表安强科技社区立场,如若转载,请注明出处:https://community.anqiangkj.com/archives/2014

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年12月30日 下午9:56
下一篇 2021年12月30日 下午10:40

相关推荐

发表回复

您的电子邮箱地址不会被公开。