打补丁总是拖延症,雅虎被发现存在Struts2“老旧”高危漏洞-阿里云开发者社区

开发者社区> 安全> 正文

打补丁总是拖延症,雅虎被发现存在Struts2“老旧”高危漏洞

简介: 本文讲的是打补丁总是拖延症,雅虎被发现存在Struts2“老旧”高危漏洞,我一直都认为分享精神是可贵的,我过去从很多安全领域大牛的漏洞报告中学到了很多知识,所以我决定将我找到的漏洞经历进行分享,希望能够帮助到一些刚刚开始挖洞的白帽子们。
本文讲的是打补丁总是拖延症,雅虎被发现存在Struts2“老旧”高危漏洞我一直都认为分享精神是可贵的,我过去从很多安全领域大牛的漏洞报告中学到了很多知识,所以我决定将我找到的漏洞经历进行分享,希望能够帮助到一些刚刚开始挖洞的白帽子们。

就像之前爆出来的Struts2高危漏洞(CVE-2017–5638),由于攻击条件比较简单,导致了众多Web应用程序沦陷。

在该漏洞的exp爆出来三周之后,我在渗透过程中发现了这个链接:

https://svdevems01.direct.gq1.yahoo.com/sm/login.jsp

这是雅虎使用的一个登录界面。

打补丁总是拖延症,雅虎被发现存在Struts2老旧高危漏洞

于是我尝试寻找这个页面的漏洞,直到我找到了这个页面:

https://svdevems01.direct.gq1.yahoo.com/sm/login/loginpagecontentgrabber.do

因为后缀名是.do,所以我认为这个页面正在运行Struts2。我一般会认为后缀名是.do、.action、.go都是使用Struts2的标志。

因为exp已经发布出来了,所以可以很简单的进行利用。不过对于这个目标,我们的exp并没有成功。尽管我确定他一定是存在这个漏洞的,这就意味着目标存在waf或者一些动作阻止我的攻击。

因为目标一定是可以被攻击的,我不可能在这一步停止测试,一定要提交一个可以使用的poc才可以对漏洞进行报告。经过一些搜索之后我在推特上找到了一个exp可以绕过waf,进行攻击。

我找到的这个exp的绕过方法是通过使用”Content-Type”HTTP头部发送一个特定的数据包,这个http头如下:

Content-Type: %{#context[‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’].addHeader(‘X-Ack-Th3g3nt3lman-POC’,4*4)}.multipart/form-data

这个poc是请求web服务器将两个数字进行相乘,当然,你可以将这个操作换成任意代码进行攻击。在上面的例子中,我使用的两个数字是4,并且web服务器返回的值为16,这就说明这个服务器是可以进行攻击的。
下图中,返回头部就会添加‘X-Ack-Th3g3nt3lman-POC: 16’

打补丁总是拖延症,雅虎被发现存在Struts2老旧高危漏洞

在我报告这个漏洞三十分钟后,雅虎进行了确认,并且将这一服务进行下线,之后进行了修复。我得到了5500美元的奖励。




原文发布时间为:2017年6月7日
本文作者:xnianq
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

云安全开发者的大本营

其他文章