MongoDB未授权访问

mongodb未授权访问漏洞 复现

MongoDB[//]: # (忙够DB)是一种流行的开源文档数据库管理系统(DBMS),基于分布式文件存储的数据库属于NoSQL数据库的一种。

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

漏洞原理

未授权访问的根本原因就在于启动 Mongodb 的时候未设置 auth 无权限验证

Docker开启环境

镜像仓库中拉取漏洞镜像

plain 复制代码
docker pull mongo

利用此镜像mongo运行一个MongoDB容器,并将容器的27017端口映射到主机的27017端口容器的名称为mongodb

plain 复制代码
docker run -d -p 27017:27017 --name mongodb mongo

IP+端口访问成功

docker开启的27017端口映射在物理机的27917使用下面的命令并且管理员运行

plain 复制代码
netsh interface portproxy add v4tov4 listenport=27917 listenaddress=0.0.0.0 connectport=27017 connectaddress=172.17.0.2

MSF使用漏洞扫描模块配置相关信息就能够连接上了,看着很简单 但是我不行啊

plain 复制代码
use auxiliary/scanner/mongodb/mongodb_login

 show  options

 set rhosts  192.168.4.128

 set  threads  15

 exploit
漏洞修复
  • admin数据库中增加用户,设置复杂的密码;
  • 配置文件/etc/mongod.conf中,设置auth=true;
  • 配置文件/etc/mongod.conf中,设置bind_ip=127.0.0.1原始是0.0.0.0 代表允许其他主机连接
  • 修改默认端口27019
相关推荐
l1t几秒前
DeepSeek总结的PostgreSQL 19 的新功能REPACK
数据库·postgresql
z4424753263 分钟前
CSS如何实现文本溢出显示省略号_掌握text-overflow使用方法
jvm·数据库·python
m0_515098425 分钟前
如何处理.NET中的Oracle Number溢出_OracleDecimal与C# decimal数据类型对应
jvm·数据库·python
2401_887724505 分钟前
Less如何优化CSS文件大小_利用压缩配置去除冗余样式
jvm·数据库·python
吕源林7 分钟前
Python中PyTorch如何处理NaN损失值_添加梯度裁剪与检查输入数据
jvm·数据库·python
Absurd58710 分钟前
SQL如何利用JOIN查询进行数据报表汇总_聚合函数与分组连接方法
jvm·数据库·python
m0_5145205713 分钟前
如何在 Go 中基于接口样例动态创建对象实例
jvm·数据库·python
2501_9142459316 分钟前
如何测试FSFO观察者进程的自动切换_模拟主库断网与Observer心跳超时
jvm·数据库·python
StackNoOverflow18 分钟前
Sentinel服务保护框架完全指南:从原理到实践
java·数据库·sentinel
m0_7349497919 分钟前
如何按优先级控制 Flex 容器内子元素的截断顺序
jvm·数据库·python