挖洞经验 | 从负载均衡或CDN应用中发现的配置类漏洞
Posted FreeBuf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挖洞经验 | 从负载均衡或CDN应用中发现的配置类漏洞相关的知识,希望对你有一定的参考价值。
本文分享的Writeup是作者在测试一些目标服务相关的负载均衡或CDN应用时发现的错误配置型漏洞,这些漏洞有些发生服务端犄角旮旯的响应消息中,可能很少会引人注意,我们一起来看看。
前言
当针对一个Web应用测试目标进行漏洞分析时,我通常最后都会检查两件事:
这样做的目的是为了寻找更多的攻击面,特别是针对IDOR或访问控制类型漏洞时尤为有用。然而这种习惯却逐渐成了我挖掘奇怪漏洞过程中必不可少的操作,此处我就分享一些类似漏洞安全,希望能对大家起到借鉴作用。
漏洞1:奇怪的负载均衡错误配置漏洞($400)
经过一番分析验证,原来是这样的,如果当前用户在没有特定的用户“Cookie”信息时,若他对目标服务端发起了请求,那么就会导致前端的负载均衡应用出现响应错乱,错把其他用户的用户个人响应到了那个JS脚本中,显示到了当前用户的响应消息中。
所以,如果当前用户把自己的所有Cookie信息删除后,对目标服务端发起请求,就会在HTTP响应中获取到其他用户包括个人邮箱在内的用户信息。而且,每次执行不同的请求,负载均衡应用就会响应给客户端不同的其他用户信息。因此,如果不停的Repeat重放请求,那么将会以此方式获取到目标网站中的大量注册用户敏感信息。如下变换请求获得其他用户的个人注册信息:
漏洞2:白名单用户信息泄露漏洞($800)
于是乎,我在目标网站上对这些邮箱进行了分析,之后发现这些邮箱对应的账户都是一些已经存在的有效账户。后续我搞明白了,原来这是一些目标网站应用的白名单用户,用以排除在某种安全限制之外之用(有可能是WAF),但是却错误地配置到了响应的脚本页面中了。
漏洞3:负载均衡的浅拷贝缓存漏洞
在某次渗透测试中,我发现与第一个漏洞类似的信息泄露问题,同样是我在查找Burp被动扫描记录时发现的:
这个漏洞与第一个漏洞的不同之处在于,我无法通过它来收集获取其他用户的相关个人信息,但由于这是一个渗透测试项目,我就直接和客户方进行了交流沟通,之后,客户方经过调查给我的解释为:
由于服务后端存在某个对象实体的浅拷贝(Shallow Copy),当对象实体引用了其他用户数据时就会发生暂时的缓存,当该对象实体返回后,存在该漏洞问题的页面将会在其中渲染加载**实例信息。
之后验证发现,这种情况在目标服务端每小时都会发生一次的事,非常难以定位复现,但在我多了个心眼的情况下,好在帮助客户发现了这个问题。
漏洞4:用户授权Authorization Header头信息泄露漏洞
同样的,在测试某个目标API应用时,当我在检查HTTP响应中我自己的注册用户名时,我发现它竟然包含在了其中一个JS脚本中,该脚本中还包含了我对访问该API的授权Authorization Header头信息,这是不是一个跨站脚本包含(XSSI)漏洞呢?
之后,我发现即使把我账户相关的会话Cookie删除之后,发起该请求,一样还会返回我的用户名和授权Authorization Header头信息:
我根本想不到会如此,所以我又接着进行了以下测试:
1、如果更改其中的loc参数,JS脚本响应的消息就会会包括上述用户相关泄露信息;
2、如果以第二个用户身份访问目标API应用,JS脚本中响应的就会是该用户相关的个人信息;
3、同样,在第二个用户会话环境下,即使删除所有会话Cookie,JS脚本返回的信息依然是第二个用户的个人信息。
现在来看,由于这是一个JS脚本文件,它由目标API服务的前端CDN执行了缓存,其中包含了loc参数上。有两种利用方式,一是即使loc参数无效,那么目标API服务端将会返回响应用户的授权头信息,利用这个点可以构造钓鱼链接,以无效的loc为参数,发送给受害者,诱惑其点击,那么就会把其授权Authorization Header头信息缓存在JS脚本中。
另一种为有效的loc参数环境下,可以通过loc参数样式构造字典,对API服务端进行枚举请求,那么,将会获取到一些有效loc参数相关的注册用户个人信息。
该漏洞上报后只收获了$300的奖金,原因在于厂商认为用户授权头信息不怎么敏感,但我认为漏洞还是被低估了。但不管怎么说,总比三年前发现这种漏洞时要好得多。
总结
漏洞众测是个特别的行业,除了XSS、CSRF、SQLi等其它通用漏洞的分析外,尝试进行上述逻辑错误配置漏洞的测试,说不定会发现一些独特的攻击面。有些测试起初看似没有意义,但仔细深入就会发现更多隐藏的线索。
*参考来源:medium,clouds 编译整理,转载请注明来自 FreeBuf.COM
精彩推荐
以上是关于挖洞经验 | 从负载均衡或CDN应用中发现的配置类漏洞的主要内容,如果未能解决你的问题,请参考以下文章