MongoDB未授权访问漏洞

MongoDB未授权访问

搭建环境

测试环境:Centos7

安装前先安装依赖包

Red Hat/CentOS:

1
sudo yum install libcurl openssl

Ubuntu 18.04 LTS (“Bionic”)/Debian 10 “Buster”:

1
sudo apt-get install libcurl4 openssl

Ubuntu 16.04 LTS (“Xenial”)/Debian 9 “Stretch”:

1
sudo apt-get install libcurl3 openssl

下载MongoDB

MongoDB 源码下载地址:https://www.mongodb.com/download-center\#community

MongoDB的可执行文件在bin目录下,将其添加到$PATH路径中

1
export PATH=\<mongodb-install-directory\>/bin:\$PATH

创建数据库目录

1
Mkdir -p /data/db

创建数据库存放目录和日志

1
2
3
4
5
cd /data               //创建数据库目录

sudo mkdir db //创建日志

sudo touch log

命令行中启动MongoDB服务

1
2
3
 cd 安装路径/mongo/bin

sudo ./mongod --dbpath=/data/db -- logpath=/data/logs

Mongodb启动成功

漏洞复现

登录Mongodb控制台

1
命令: mongod 127.0.0.1:27017

登录成功后,使用语句进行查询操作,发现数据库admin没有数据,没有添加用户

修复方法

(1) 为 MongoDB 添加认证

① MongoDB 启动时添加 -auth 参数。

② 给 MongoDB 添加用户

1
2
3
4
5
use admin \# 使用 admin 库

db.addUser“用户名” “密码”\# 添加用户名、密码

db.auth“用户名”,“密码”\# 验证是否添加成功返回 1 说明成功。

(2) 禁用 HTTP 和 REST 端口

MongoDB 自身带有一个 HTTP 服务并支持 REST 接口。在 2.6
版本以后这些接口默认关闭。MongoDB 默认会使用默认端口监听 Web 服务一般不需要通过
Web 方式进行远程管理建议禁用。修改配置文件或在启动时选择 -nohttpinterface 参数

1
nohttpinterface = false

(3) 限制绑定 IP

启动时加入参数

1
--bind_ip 127.0.0.1

或在 /etc/mongodb.conf 文件中添加以下内容 

1
bind_ip = 127.0.0.1
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2024 John Doe
  • 访问人数: | 浏览次数:

让我给大家分享喜悦吧!

微信