Go教程

MongoDB 未授权访问漏洞复现

本文主要是介绍MongoDB 未授权访问漏洞复现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

0x00 前言

--学如逆水行舟,不进则退

0x01 简介

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

0x02 漏洞简介以及危害

漏洞成因:

在刚安装完毕的时候 MongoDB 都默认有一个 admin 数据库,此时 admin 数据库是空的,没有记录权限相关的信息!当 admin.system.users 一个用户都没有时,即使 mongod 启动时添加了 —auth 参数,如果没有在 admin 数据库中添加用户,此时不进行任何认证还是可以做任何操作 (不管是否是以 —auth 参数启动), 直到在 admin.system.users 中添加了一个用户。加固的核心是只有在 admin.system.users 中添加用户之后,mongodb 的认证,授权服务才能生效

漏洞危害:

开启 MongoDB 服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库。

0x03 漏洞复现

         所需机器:

                攻击机:kali

                靶机:Centos7(192.168.166.129)

1.环境搭建

docker pull mongo        //拉去镜像

docker docker run -d -p 27017:27017 --name mongodb mongo

 启动之后,访问靶机ip:27017 ,出现以下图片,说明搭建成功

 2.在kali中进行验证

msfconsole                 //启动msf

use auxiliary/scanner/mongodb/mongodb_login   

set rhosts 192.168.166.129

set threads 10

exploit

 

可以使用 navicat 等工具连接,这里就不做演示了

0x04 漏洞修复

1.修改默认端口

2.不要开放服务到公网

3.禁用HTTP和REST端口

 

这篇关于MongoDB 未授权访问漏洞复现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!