漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛

渗透技巧 2年前 (2022) admin
977 0 0

★且听安全-点关注,不迷路!



漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛

★漏洞空间站-优质漏洞资源和小伙伴聚集地!



漏洞信息


JIRA 存在 Seraph 组件认证绕过漏洞,影响范围广泛:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


根据官方描述,大批量的默认和第三方插件受到影响:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


关于Seraph Filter


对于认证绕过,猜测问题可能出现在 Filter 过滤上,JIRA 内部封装了数量较为庞大的 Filter 列表:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


由于漏洞出现在`Seraph`模块,挨个查看 Filter 类,发现`JiraSecurityFilter`引用了`com.atlassian.seraph`包:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


在`doFilter`中调用`super.doFilter`,即`SecurityFilter.doFilter`:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`Security.doFilter`根据客户端请求用户权限进行检查,进一步判定是否需要认证,`needAuth`变量很容易引起注意:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


通过动态调试可知有 3 种服务进行检查,即`JiraPathService`、`WebworkService`和`JiraSeraphSecurityService`:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`JiraPathService`用于处理`/secure/admin/`请求,需要管理员访问:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`WebworkService`从`actions.xml`文件`webwork`中读取权限定义:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


其`getRequiredRoles`函数代码如下:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


最后是`JiraSeraphSecurityService`,从插件`Atlassian-plugin.xml`文件中读取`webwork`接口权限定义:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


动态调试可知经过多次`getRequiredRoles`函数执行,最后调用了`WebworkPluginSecurityServiceHelper.getRequiredRoles`函数,而且这个函数代码与`WebworkService.getRequiredRoles`相同:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


该函数从`request`请求中提取 URI ,搜索最后一个`/`所在的位置,提取接口名称得到`targetURL`。如果 URL 输入为`/secure/PerformOAuth2Authorization.jspa`,那么`targetURL`为`PerformOAuth2Authorization.jspa`:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


在`actionMapper`中搜索对应的`Action`名称,这里得到为`PerformOAuth2Authorization`:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


根据`rolesMap`得到接口的权限为`admin`,接口需要管理员登录:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


介绍完功能代码,最后还要重点 Mark 一下,`getRequiredRoles`中获取 URL 的方式为`getRequestURI`:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


*.jspa的处理


查看`atlassian-jira/WEB-INF/web.xml`文件`Servlet`定义,`*.jspa`由`com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher`处理:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`JiraWebworkActionDispatcher.service`函数从请求中获取`Action`名称:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


使用`/`和`.jspa`切割字符串获取`ActionName`,如果 URL 输入`/secure/PerformOAuth2Authorization.jspa`,那么 Action 为`PerformOAuth2Authorization`,注意到使用`getServletPath`函数:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


在`executeAction`函数中进行`Action`检查:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`Action`工厂列表如下:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


再一次 Mark ,`GetActionName`中使用了`getServletPath`函数。


Seraph Filter认证绕过



通过前边的分析,我们能够得知`Seraph`组件在 Filter 中使用`getRequestURI`提取 URL ,而 Servlet 中使用`getServletPath`,有经验的小伙伴应该很快意识到存在一个典型的认证绕过场景。


简单的来说就是如果 URL 中包含`;`,`getServletURI`结果会将分号保留,但`getServletPath`会自动将分号删除。以发送`/secure/PerformOAuth2Authorization.jspa;`为例, `Seraph` 组件 Filter 中调用显然找不到`PerformOAuth2Authorization.jspa;`对应的 Action ,从而进入 Servlet 处理,相当于完成了 Filter 层面的认证绕过:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


`getActionName`获取的结果示例如下:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


利用WebWork绕过插件认证


绕过`Seraph`组件`Filter`后,可以看到回复报文存在差异,但是还是需要认证:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


调试后发现在执行`LookupAliasActionFactoryProxy`时同样读取了`PerformOAuth2Authorization`权限并进行检查:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


同时其他`Factory`可能检查`Xsrf`、`checkWebSudoStatus`等要素:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


直接查找官方文档,在编写插件时可以使用`webwork1`元素添加`roles-required`属性:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


Atlassian 插件通常为 jar 或者 ocr 格式,为了验证绕过,根据官方发布的插件影响列表下载 Insight 8.9.10 版本,找到一个`webwork1`元素:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


成功绕过后台限制:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


受影响的其他页面


JIRA 默认组件中一些可能绕过的功能,(尚未调试分析每个接口功能):


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛



漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛



还有很多其他 URL ,需要绕过 XSRF:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛



部分接口可通过请求直接返回错误栈:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛


有兴趣获取完整漏洞分析与复现过程的小伙伴,请加入我们的漏洞空间站-致力于打造优质漏洞资源和小伙伴聚集地!


修复方式


典型的插件修补过程:


漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛

原文始发于微信公众号(且听安全):漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛

版权声明:admin 发表于 2022年5月8日 下午1:10。
转载请注明:漏洞空间站上线啦!CVE-2022-0540 Atlassian JIRA存在认证绕过漏洞影响范围广泛 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...