一、漏洞危害
对外开放的MongoDB服务,未配置访问认证授权,无需认证连接数据库后对数据库进行任意操作(增、删、改、查高危动作),存在严重的数据泄露风险。
二、漏洞成因
MongoDB服务安装后,默认未开启权限验证。如果服务监听在0.0.0.0,则可远程无需授权访问数据库。
3.0之前版本的MongoDB,默认监听在0.0.0.0,3.0及之后版本默认监听在127.0.0.1。
3.0之前版本,如未添加用户管理员账号及数据库账号,使用
--auth
参数启动时,在本地通过127.0.0.1仍可无需账号密码登陆访问数据库,远程访问则提示需认证;3.0及之后版本,使用
--auth
参数启动后,无账号则本地和远程均无任何数据库访问权限。
三、漏洞验证
MongoDB存在未授权访问漏洞时,使用MongoDB的高版本shell工具mongo(高版本兼容低版本)直接连接成功,执行show dbs
命令,无报错信息,列表存在默认库local
库,则判断存在未授权访问(local库即便删除,重启MongoDB后仍会生成)。
C:\ "C:\Program Files\MongoDB\Server\4.0\bin\mongo.exe" 127.0.0.1
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.