1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

admin 2024年1月23日10:42:39评论53 views字数 1311阅读4分22秒阅读模式

此文章由SpringKiller安全研究师傅产出,这位佬是一个能独立开发一款企业级IAST,伸手0day伸脚1day,能手搓操作系统用脚逆向的师傅,还是OWASP的代码贡献者之一。哦,差点忘了,这个师傅能书会画,上厅堂下厨房无所不能,现在是甲方大爹。呆哥建议爱学习的可以找他击剑一下。

SpringKill师傅的Github地址:https://github.com/springkill

01

厂商通报

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

没POC没分析,肿么办,没事SpringKill给你代审整出来。

02

漏洞描述

Atlassian Confluence 存在模板注入代码执行漏洞,攻击者可构造恶意请求触发模板注入进而造成远程命令执行。

03

影响版本

停止更新的各个版本以及:

  • 8.4.0 <= Confluence Data Center and Server <= 8.4.4

  • 8.5.0 <= Confluence Data Center and Server <= 8.5.3

  • 8.6.0 <= Confluence Data Center <= 8.6.1

04

漏洞分析

还是老样子,diff一下代码发现confluence的一些修改,有一个删除了的文件引起注意:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

删除了:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

ConfluenceStrutsUtil继承自VelocityStrutsUtil:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

VelocityStrutsUtil又继承自StrutsUtil,看到这里推测velocity模板注入。

具体应该和前几次有几分相似,velocity解析导致的`ognl`表达式执行,于是可以去看vm文件。

再看vm文件的时候,犯了一个很大的错误,我在重置密码这里看了好久,但是始终是没有结果,它是从action里面读取的变量,所以应该不存在漏洞了,通过vm文件进行访问的时候并不能设置这个值。

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

又正值年终总结正好很忙,于是就暂且搁置。

后来发现GitHub上多了一个项目(https://github.com/Sudistark/patch-diff-CVE-2023-22527),里面有所有vm的信息,于是就是直接搜一下:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

于是我尝试一些其他接口,但是都是一无所获,这期间想让Z3教我,得到的回复是:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

最后在text-inline.vm中会调用到findvalue方法从而造成表达式的执行:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

试一下经典poc:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

在StrutsUtil里面果然是找到了这个内容,太长了分开截:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

 后面就会按照模板定义的走到findvalue

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

到这里就执行了:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

然后通过getText方法取值,这里发现已经计算完毕了:

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

那么这也就通过velocity造成了Ognl表达式执行漏洞。

05

关于RCE

这块可是焦头烂额,尝试构造了几个都没成功执行命令(弹计算器),直到今天看到P牛的vulhub更新了,才想起用回显,这里放下vulhub链接,就不照抄了。https://github.com/vulhub/vulhub/tree/master/confluence/CVE-2023-22527

1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

06

关于POC

 师傅们看着代审流程分析出POC吧,这里不会提供POC。

原文始发于微信公众号(阿呆攻防):1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月23日10:42:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   1day代审分析|Atlassian Confluence 远程代码执行漏洞(CVE-2023-22527)http://cn-sec.com/archives/2420740.html

发表评论

匿名网友 填写信息