=========================================2019.4.19更改=================================================
昨天收到了confluence的一个路径穿越漏洞,所以在此记录,使用本教程的朋友请注意安全,或者升级到高版本,目前还没有尝试高版本的破解
发布时间 2019-04-18
更新时间 2019-04-18
漏洞等级 High
CVE编号 CVE-2019-3398
漏洞详情
Confluence Server和Data Center产品在downloadallattachments资源中存在一个路径穿越漏洞。有权向页面和(或)博客添加附件,或创建新空间或个人空间,或者对空间具有“管理员”权限的远程攻击者可以利用此漏洞将文件写入任意位置,最终导致远程代码执行。
影响范围
影响产品:
Confluence Server、Confluence Data Center
影响版本:
6.6.14之前的所有版本
所有6.7.x-6.11.x版本
6.12.4 之前的所有6.12.x版本
6.13.4 之前的所有6.13.x版本
6.14.3 之前的所有6.14.x版本
6.15.2 之前的所有6.15.x版本
修复方案
注意:安装升级前,请做好数据备份、快照和测试工作,防止发生意外
1.升级Confluence Server或Data Center版本:
6.6.13
6.13.4
6.14.3
6.15.2
2.执行官方缓解措施:
1)停止Confluence
2)编辑/conf/server.xml:
如果没有为 Confluence 配置 context path,则将以下代码添加至 元素中:
<Context path="/pages/downloadallattachments.action" docBase="" >
<Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
</Context>
如果已为 Confluence 配置了 context path,比如说 /wiki,则需要将以下代码添加至 元素中:
<Context path="/wiki/pages/downloadallattachments.action" docBase="" >
<Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
</Context>
3)保存文件,重启Confluence验证缓解措施是否生效:
访问含有2个或以上附件的页面/博客,点击… > 附件 > 下载全部,若返回404页面,则说明缓解措施已生效。
我目前已经将confluence升级到6.14.3 jira升级到了8.1.按照之前的办法依然可行,备份数据的时候出了一点小问题,抽空来记录一下
环境准备
$ yum -y install mariadb mariadb-devel mariadb-server $ systemctl start mariadb
安装JDK并且配置环境
$ tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/ $ rpm -qa | grep java $ ln -s /usr/local/jdk1.8.0_181/ /usr/local/java $ vim /etc/profile.d/jdk.sh export JAVA_HOME=/usr/local/java export JRE_HOME=$JAVA_HOME/jre export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin $ source /etc/profile.d/jdk.sh $ java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
数据库授权
$ create database confluence character set utf8 collate utf8_bin; $ create database jira character set utf8 collate utf8_bin; $ create database crowd character set utf8 collate utf8_bin; $ grant all privileges on confluence.* to 'confluence'@'localhost' identified by 'Qy123456.'; $ grant all privileges on confluence.* to 'confluence'@'%' identified by 'Qy123456.'; $ grant all privileges on jira.* to 'jira'@'localhost' identified by 'Qy123456.'; $ grant all privileges on jira.* to 'jira'@'%' identified by 'Qy123456.'; $ grant all privileges on crowd.* to 'crowd'@'localhost' identified by 'Qy123456.'; $ grant all privileges on crowd.* to 'crowd'@'%' identified by 'Qy123456.'; $ flush privileges;
Confluence的安装
$ wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.0-x64.bin $ chmod +x chmod +x atlassian-confluence-6.10.0-x64.bin $ ./atlassian-confluence-6.10.0-x64.bin
破解jar包
$ mv /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /opt/
将这个包拷贝到/opt下,然后下载到windows系统中
下载java虚拟机
在这个网站http://www.java.com/zh_CN/上下载最新版虚拟机
安装完下载的java虚拟机
下载破解器(Windows上操作)
https://pan.baidu.com/s/1xlad7bMAh-RjZHeJdinc5A
解压后,点击confluence_keygen.jar
打开显示如下界面,然后通过.patch!选择刚才拷贝的atlassian-extras-decoder-v2-3.4.1.jar(改名为atlassian-extras-2.4.jar)
将产生的新的atlassian-extras-2.4.jar上传wiki服务器的/opt/atlassian/confluence/confluence/WEB-INF/lib下,同时修改回原来的名字
$ mv atlassian-extras-2.4.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.3.0.jar
同时将mysql-connector-java-5.1.44-bin.jar和Confluence-6.0.0-m22-language-pack-zh_CN.jar也上传到/opt/atlassian/confluence/confluence/WEB-INF/lib
重启服务
$ service confluence restart
浏览器访问 ip:8090
将上图获得Server ID 通过破解器获得Key,然后复制粘贴
Name:可以随便填
Server ID:就是之前记录的Server ID
点击“.patch”选中atlassian-extras-2.4.jar
点击“.gen!”生成key
记下生成的key
等待完成
Jira的安装
https://www.atlassian.com/software/jira/download-archives
破解包步骤如Confluence(/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jar 拷贝到Windows系统上,改名为atlassian-extras-2.2.2.jar,使用工具破解,成功后,上传源目录,并改为原名。上传
mysql-connector-java-5.1.44-bin.jar )
要先将mysql-connector-java-5.1.44-bin.jar拷贝到/opt/atlassian/jira/atlassian-jira/WEB-INF/lib目录下
测试成功之后,点击下一步
在这一步的时候,破解jar包,方法同Confluence
atlassian-extras-3.2.jar
设置账号密码
等待完成
设置头像,进行下一步
创建一个简单项目
开启jira管理
设置--->系统 修改语言
Crowd的安装
下载Crowd-3.2.1
$ wget https://www.atlassian.com/software/crowd/downloads/binary/atlassian-crowd-3.2.1.tar.gz
解压
$ tar -zxvf atlassian-crowd-3.2.1.tar.gz -C /usr/local $ ln -s /usr/local/atlassian-crowd-3.2.1/ /usr/local/crowd
配置环境
$ vim /usr/local/crowd/crowd-webapp/WEB-INF/classes/crowd-init.properties #取消注释 crowd.home=/var/crowd-home $ mkdir /var/crowd-home
破解jar包,步骤如Confluence(/usr/local/crowd/crowd-webapp/WEB-INF/libatlassian-extras-3.2.jar改名为atlassian-extras-2.6.jar,破解完改完名,放回原位置,同时上传mysql-connector-java-5.1.44-bin.jar)
启动Crowd
/usr/local/crowd/start_crowd.sh
访问IP:8095
使用crowd_keygen.jar获取秘钥,方法如Confluence
登录
Crowd搭建完成
Jira+Confluence基于Crowd登录
在Crowd上创建组:
confluence-usersconfluence-administrators
jira-usersjira-developersjira-administrators
创建用户:
在confluence-administratorsconfluence-users组中添加confluenceadmin
在jira-usersjira-administratorsjira-developers组中添加jiraadmin
给用户添加组
confluence报错
隔离级别
如果出现mysql的数据库隔离级别必须为'READ-COMMITTED',进行如下操作即可
MariaDB [(none)]> SET GLOBAL tx_isolation='READ-COMMITTED'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.02 sec) 或者 [mysqld] ··· transaction-isolation=READ-COMMITTED
···
乱码
$ vim /var/atlassian/application-data/confluence/confluence.cfg.xml <property name="hibernate.connection.url">jdbc:mysql://10.30.162.127:3306/confluence?useUnicode=TRUE&characterEncoding=utf-8&autoReconnect=TRUE</property> $ systemctl restart confluence
调整数据库的语言
$ vim /etc/my.cnf character-set-server=utf8 collation-server=utf8_bin $ systemctl restart mariadb
可能之前创建的空间还不能加载过来,创建新的空间,再次查看,中文正常显示
PID问题
启动遇到PID的问题。无法正常启动
$ rm -rf /opt/atlassian/confluence/work/catalina.pid $ systemctl restart confluence
Dashboard无法显示
PS:百度网盘的资源可能过几天就不能使用了,需要的可以私聊我,留言即可