基于业务场景的漏洞挖掘方法

VSole2023-04-27 14:39:22

随着WAF产品从传统规则库到智能引擎的转型,通用漏洞类型已基本可以防护。但WAF的局限性也在于只能防御流量层面的攻击,难以防御业务逻辑型的漏洞。而如今大部分企业在Web应用层的防护主要依赖WAF, 往往会忽视业务逻辑场景产生的漏洞 本文介绍一些基于业务逻辑场景的应用漏洞挖掘方法,希望可以对各企业安全建设和SRC漏洞挖掘有所启发。

信息收集

信息收集是漏洞挖掘的第一步,你拥有的“资产信息”决定了你的产出。下面列举几种常见的信息收集手段:子域名收集

1.  暴力破解

推荐在线子域名扫描工具:YoungxjTools,速度快,内置大量字典且支持自定义字典,本地工具layer也很方便,比YoungxjTools多了端口配置功能。

2.  搜索引擎搜索

Google、百度、360、bing、搜狗等主流搜索引擎,可以通过搜索语法进行搜索,在发现域名时往往会同时发现一些敏感的页面,但收录有限。

3.  证书查询

常用的证书查询网站有censys.io crtsh等,可以发现暴力破解无法爆破出来的子域,但同样收录有限。

4.  微信公众号、小程序

微信已是如今人们日常生活中用的最多的软件之一,越来越多的公司选择在微信公众号、小程序来拓展业务及影响力,我们可以通过这些渠道来收集更多的域名或ip地址

业务逻辑的切入点

1.登陆注册,修改密码处(验证码绕过)

客户端刷新验证码

在挖掘验证码问题中,一般情况下会先通过抓取数据包验证常见的逻辑错误、暴力破解、短信轰炸等问题。此处讲解下检查源码方式,直接右键检查验证码的html代码,可以看到验证码是客户端通过一个img标签进行请求刷新的,,此处src地址即为验证码地址。

正常当我们输入错误的验证码时,请求会返回验证码错误信息且刷新一次验证码,当我们将客户端刷新验证码的请求hold住时,验证码处会一直停留在原始的验证码,不会再做刷新,此时我们就可绕过验证码刷新并使用burpsuite进行账户密码的暴力破解了。

2.  支付功能处(更改客户端)

高并发问题

假设用户的账户余额100元,某商品单价100元/件,当用户使用账户余额购买此商品时只能购买一件数量,且购买成功后账户余额归零。但当业务存在高并发漏洞时,扣款的同时数据库未落锁,导致账户余额可能减少至负数,购买到的商品也可大于一件。

如在某小程序中,有一处使用积分抽奖的功能,在使用积分抽奖按钮处使用fiddler抓包并截断数据包请求。

shift+r设置同时高并发50次,可看到抽奖次数已超出积分余额,同时剩余积分变为负数。

 

3.订单管理处(用户权限,用户未授权)如增删改查、本地验证绕过

水平越权(不安全的直接对象引用IDOR)

越权漏洞是web应用程序常见的漏洞之一,主要分为以下几类:

  • 未授权访问:本来没有账号(即没有某个功能权限),但是通过越权操作,获取了某个功能权限;
  • 水平越权:本来有个账号(即只能操作自己的数据,比如增删改查),但是通过越权操作,能操作其他同等权限账号的数据。
  • 垂直越权:本来有个账号只有小权限,但是通过越权操作,获取了大权限。

         

在日常安全测试中,大部分发现的都是未授权访问和水平越权,本次讲解下水平越权。水平越权常见于业务系统中,对用户信息或者订单信息进行增删改查操作时,由于用户编号或者订单编号有规律可循(有序递增,订单编号常发现以日期开头后面再接几位有序增长的数字,类似20200520xxxx1,20200520xxxx2),且执行请求时未校验用户对应权限或权限校验不足,就可能存在越权漏洞,此时我们通过burpsuite的 intruder对目标参数进行遍历测试即可。

如下是某厂商业务系统的分销中心,提供分销账单的查询功能:

登陆账户后,任意选择一个分销账单,点击订单明细查询,使用burpsuite进行抓包,可以看到查询的参数只有”billld”一个选项,且参数值为简单的4位数字,返回包中含明文的订单明细信息:

更改一个不在账户权限下billld,发现仍可正常返回,使用intruder对billld参数进行遍历,并对length排序,可得多条有效payload对应的订单明细,理论上遍历的参数值范围够大,可得全站分销账单明细。

4.配置不当

SPF邮件伪造

SPF是 Sender PolicyFramework 的缩写,一种以IP地址认证电子邮件发件人身份的技术。接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。SPF可以防止别人伪造你来发邮件,是为了防范垃圾邮件而提出来的一种DNS记录,它是一种TXT类型的记录。

由于SMTP邮件服务商互相发送邮件是不需要认证的,邮件伪造也是利用这个特性来实现伪造任意发件人。

如何查看邮件服务器是否配置SPF记录:

Windows下进入DOS模式后用以下命令:

nslookup -type=txt 域名

Unix操作系统下用:

dig -t txt host

已配置SPF的情况

可以看到在ANSWER SECTION下存在一条

"v=spf1include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr-all"

简述下此条记录的含义,v=spf1 声明SPF的版本,include: 表示引入域名下的 SPF 记录,支持当前域名的a mx ptr记录进行验证,-all表示除此之外拒绝所有。

未配置SPF的情况,可看到声明中无相关spf记录

攻击者可以找一个在线smtp发件服务器,伪造发件地址进行钓鱼,以下是某企业邮箱存在SPF邮件伪造的示意图:

总结

本篇文章只简单介绍了几个业务漏洞挖掘的方向,大家可在此基础上拓展思路,发掘更多姿势。业务问题产生的漏洞很多,一些扫描器、WAF等安全产品也难以覆盖,尤其一些新上线的大型业务系统接口多,功能点的逻辑复杂,容易产生被忽视的漏洞,是SRC漏洞挖掘的重点部分,同时也提醒我们甲方此类安全测试的重要性。

漏洞漏洞挖掘
本作品采用《CC 协议》,转载必须注明作者和本文链接
src漏洞挖掘浅谈
2023-02-20 11:22:13
信息收集就说到这里,信息收集的主要目的就是扩大可利用面,10000万个资产你可能碰到弱口令,但1个资产你肯定没有弱口令挖掘前篇前边已经讲了信息收集,在测试前为了能高效的挖掘src,就需要有数据进行测试,这个数据就是我们常说的字典,字典怎么来,整理,收集,经验,积累。金额,数量都是可以篡改的地方小结挖掘src漏洞最主要还是挖掘逻辑漏洞,无非就是耐心,细节,多留意数据包的可疑数据,数据包所实现的功能。
首先要上分那么一定是批量刷漏洞,不然不可能上得了分的,然后呢,既然要批量刷漏洞。两种思路:1.审计通用性漏洞2.用大佬已公布的漏洞思路1难度较大,耗时也较长。思路2难度适中,就是需要写脚本或者使用别人已经写好的脚本。这是泛微继与微信企业号合作后,又一个社交化管理平台的落地成果。简单的说,一般比较大的企业都会用这个平台来做一些钉钉或者微信接口对接泛微OA的功能。
关于漏洞的基础知识
2022-07-20 09:44:23
黑客可以通过修改事件完成的顺序来改变应用的行为。所以,进行有效的验证是安全处理文件的重要保证。这种类型的漏洞有可能是编程人员在编写程序时,因为程序的逻辑设计不合理或者错误而造成的程序逻辑漏洞。这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞
网络安全漏洞(以下简称“漏洞”)作为信息通信网络中在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,随着经济社会信息化、网络化、数字化和智能化程度的加深,对国家网络安全的影响也日益加剧。世界各主要国家和组织为了切实提升国家网络安全防护能力,围绕漏洞的研究、收集和利用,纷纷建立国家级漏洞通报平台或漏洞数据库。日本于2003年开始建设“日本漏洞通报”(JVN)平台;美国于 2005 年开始建设“
细说从0开始挖掘cms-
2022-08-17 16:26:57
确立目标挖洞的第一步首先是确立一个目标,也就是找个cms来挖,这里可以通过github,gitee或者谷歌百度直接去搜cms。或者cnvd查看相应的信息,通过查看相应的信息可以提高我们挖洞的效率,我们从中可以知道该项目已经存在漏洞,我们到时候挖就可以看看相应的地方会不会还存在漏洞或者避免挖到别人挖过的漏洞。本次挖掘漏洞是ofcms,首先先下载一下源码,然后解压丢一边,回到网页来看一下项目文档。
最后对响应的匹配,使用正则识别id命令之后的结果。成功扫描出CVE-2022-1388F5 BIG-IP API Unauthenticated RCE漏洞漏洞的请求也变异无误,最后的响应中也是执行了id命令。案例二:利用Scalpel工具挖掘多个0day漏洞Scalpel工具使用较为灵活,通过对检测目标变异响应的check,可以发现检测目标中未知的安全问题。同时发现某Apache开源项目的CVE漏洞,报告被该团队接受并正在修复,尚未披露。
攻击者可在无需认证的情况下,通过构造特殊的请求,触发反序列化,从而执行任意代码,接管运行ForgeRock AM的服务器。本文从漏洞挖掘的角度分析其中的技术细节,也将公开一些其他的反序列化点。
对于公益SRC来说,想要冲榜就不能在一个站上浪费大量时间,公益SRC对洞的质量要求不高,所以只要 花时间,还是可以上榜的。在对某站点进行测试SQL注入的时候,先通过一些方式测试是否可能存在漏洞,然后可以直接sqlmap一把梭,也可以手工测试,然后提交漏洞。任意注册算是低危漏洞,不过也有两分。不管是进行SRC漏洞挖掘,还是做项目进行渗透测试,又或者是打红蓝对抗,一定要做好信息收集。
VSole
网络安全专家