MongoDB未授权访问漏洞

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

漏洞原因

造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。

漏洞复现

步骤一:在Kali上执行以下命令搭建起MongoDB的漏洞环境...

拉取镜像:docker pull mongo
启动容器:docker run  -d -p  27017:27017  --name  mongodb mongo
查看容器:docker ps -a

步骤二:使用Nmap的插件脚本进行扫描...发现存在未授权访问漏洞...


#扫描命令
nmap -p 27017 --script mongodb-info 192.168.4.176

步骤三:也可尝试使用MSF中的模块进行漏洞测试....不需要认证即可直接连接...

use auxiliary/scanner/mongodb/mongodb_login
show  options
set rhosts 192.168.4.128
set threads 15
exploit

步骤四:即存在未授权访问漏洞使用Navicat进行连接...

修复防御

  1. 为MongoDB添加认证:MongoDB启动时添加--auth参数、为MongoDB添加用户。
  2. MongoDB 自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false
  3. 启动时加入参数--bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1


product="MongoDB-数据库" && port="27017" && country!="CN"

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值