CVE-2021-43947 Atlassian Jira Server Velocity SSTI 漏洞绕过分析
2022-1-13 15:18:0 Author: paper.seebug.org(查看原文) 阅读量:208 收藏

作者: 且听安全
原文链接:https://mp.weixin.qq.com/s/XDX5eq3UE51_yLo0Q4wZ0g

漏洞信息

近日,Atlassian官方发布了一则Atlassian Jira Server RCE的漏洞公告:

图片

漏洞编号为CVE-2021-43947。从官方描述来看,属于CVE-2021-39115补丁绕过。CVE-2021-39115漏洞的复现过程可以参考公众号文章:

CVE-2021-39115

公众号:且听安全CVE-2021-39115-Atlassian Jira Service Management Server SSTI漏洞分析

漏洞分析

安装完毕后,修改/bin/setenv.bat文件,加入调试信息:

set JVM_SUPPORT_RECOMMENDED_ARGS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8787

重新启动后打开远程调试。

start-jira.bat /fg

既然这个漏洞是补丁绕过,我们首先做下补丁对比。Atlassian Jira Server通过黑名单方式修复Velocity SSTI漏洞,查看velocity.properties配置文件,对比发现新增了几个黑名单类:

图片

新增了黑名单类如下:

webwork.util.ValueStack,\
javax.el.ELProcessor,\
javax.script.ScriptEngineManager,\
java.lang.ProcessBuilder,\
javax.el.ImportHandler,\
javax.el.ELManager

看到这几个熟悉的类,有经验的小伙伴大概能够猜到如何实现绕过了。因为上一篇Atlassian Jira Server漏洞没有进行分析,本文还是从代码审计的角度简要分析下漏洞触发流程。

查看web.xml:

图片

图片

一步一步跟调用栈非常长,既然问题出在邮件处理部分,直接定位com.atlassian.jira.web.action.admin.mail.SendBulkMail#doExecute

图片

往下走,进入com.atlassian.jira.mail.builder.EmailRenderer#renderEmailSubject

图片

模板渲染在org.apache.velocity.app.VelocityEngine#evaluate处完成:

图片

为了方便bypass黑名单,我们可以编写测试代码,在断点处构造不同模板逐步实现绕过:

图片

这样处理主要是为了方便进行漏洞调试分析。结合新增加的黑名单,应该很容易构造出绕过姿势。感兴趣的小伙伴可以按照上面的方法自行进行研究,有需要的可以关注公众号后私聊。

漏洞复现

复现过程可以参考以前分享的漏洞CVE-2021-39115:

CVE-2021-39115

公众号:且听安全CVE-2021-39115-Atlassian Jira Service Management Server SSTI漏洞分析

图片


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1813/



文章来源: http://paper.seebug.org/1813/
如有侵权请联系:admin#unsafe.sh