Atlassian Confluence Server (CVE-2023-22518) - 授权不当

admin 2023年11月6日00:05:25评论67 views字数 2283阅读7分36秒阅读模式

Atlassian Confluence Server (CVE-2023-22518) - 授权不当

CVE-2023-22518是Atlassian Confluence数据中心和服务器中的一个严重漏洞。该漏洞可能允许未经身份验证的攻击者通过网络访问 Confluence 实例来恢复 Confluence 实例的数据库并最终执行任意系统命令。


技术细节

在对已修补版本和未修补版本进行补丁比较后,我们发现在各个 Action 类中添加了两个新注释,即 和@WebSudoRequired。@SystemAdminOnly


最初,我们尝试暴力破解导致这些特定操作的路线,但这种方法没有取得成功。然后,我们将注意力转向该struts.xml文件,其中包含有关操作和基于命名空间的路由以及拦截器的信息,希望能发现一些见解。然而,没有什么立即引人注目。


此外,我们注意到 中的正则表达式更改与之前导致身份验证绕过的关键CVE-2023-22515SafeParametersInterceptor有关。我们投入了大量时间尝试利用这一变化,但未能取得任何突破。我们的调查使我们了解到,在 的情况下,其中必须是数字,则不会将参数键视为复杂参数并允许。ActionObject.getXYZ.getABC[N]=ANYTHINGNSafeParametersInterceptorOgnlValueStack.setValue(...)


这一发现揭示了一个复杂的障碍:找到一种能够通过属性修改来促进身份验证绕过的方法。此过程需要存在返回集合或数组的 getter。此外,带有可操作设定器的索引也是必不可少的。然后,我们将注意力转向 struts.xml 文件,仔细检查其内容以查找任何潜在的线索。经过仔细检查,很明显/json命名空间增强了/admin命名空间的功能。因此,为/admin命名空间设计的路由也可以通过命名空间访问/json。


在命名空间的上下文中/json,请求路由过程涉及通过一系列拦截器。这些拦截器之一称为 ,WebSudoInterceptor根据请求 URI 执行检查。


WebSudo 是一项通常与 Atlassian Confluence 相关的安全功能,在这里发挥着至关重要的作用。它要求用户在执行关键操作之前使用提升的权限(通常是密码)重新验证自己的身份。


具体来说,WebSudoInterceptor 执行以下检查:

  1. 如果请求路径为/authenticate.action,则跳过。

  2. 如果请求路径为/admin,则检查该WebSudoNotRequired属性是否不为空。

  3. 对于任何其他请求路径,例如/json命名空间中的请求路径,它确保该WebSudoRequired属性为 null。这种情况表明WebSudoRequired注释不存在于类、包或方法级别。如果满足此条件,则将跳过负责启动安全管理会话的 WebSudo 检查。

现在的目标是识别在 HTTP 处理程序方法级别缺少任何授权或身份验证检查的操作(类)。


/admin/后续阶段涉及对命名空间内的所有端点/操作进行暴力破解/json/。目的是监测反应并确定任何值得注意的发现。在此期间,在 尝试 GET 请求时进行了观察/json/setup-restore.action,结果导致 405 方法不允许响应。对代码的进一步检查证实它缺少 WebSudoRequired 注释,并且没有在方法处理程序中实现任何辅助身份验证检查。本质上,这意味着通过提供正确的参数,请求可能会成功,而无需任何形式的身份验证。

POST /json/setup-restore.action?synchronous=true HTTP/1.1Host: localhost:8090Accept-Encoding: gzip, deflate, brContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryT3yekvo0rGaL9QR7X-Atlassian-Token: no-checkContent-Length: 277538
------WebKitFormBoundaryT3yekvo0rGaL9QR7Content-Disposition: form-data; name="buildIndex"
false------WebKitFormBoundaryT3yekvo0rGaL9QR7Content-Disposition: form-data; name="file";filename="exploit-restore.zip"
ZIP_DATA------WebKitFormBoundaryT3yekvo0rGaL9QR7Content-Disposition: form-data; name="edit"
Upload and import------WebKitFormBoundaryT3yekvo0rGaL9QR7--

有趣的是,传递synchronous=true对我们实际有用的东西。这是一个简单的更改,false当true较早的请求未导致成功恢复时,即使创建了恢复任务也是如此。


参考:

https://blog.projectdiscovery.io/atlassian-confluence-auth-bypass/

https://twitter.com/shimizukawasak/status/1719985739377918285


感谢您抽出

Atlassian Confluence Server (CVE-2023-22518) - 授权不当

.

Atlassian Confluence Server (CVE-2023-22518) - 授权不当

.

Atlassian Confluence Server (CVE-2023-22518) - 授权不当

来阅读本文

Atlassian Confluence Server (CVE-2023-22518) - 授权不当

点它,分享点赞在看都在这里


原文始发于微信公众号(Ots安全):Atlassian Confluence Server (CVE-2023-22518) - 授权不当

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月6日00:05:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Atlassian Confluence Server (CVE-2023-22518) - 授权不当 http://cn-sec.com/archives/2176464.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: