mongodb未授权访问漏洞

catalogue

1. mongodb安装
2. 未授权访问漏洞
3. 漏洞修复及加固
4. 自动化检测点

1. mongodb安装

apt-get install mongodb

0x1: 创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)

mkdir -p /data/db

0x2: 命令行中运行 MongoDB 服务

注意: 如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定

0x3: MongoDB后台管理 Shell

如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。当你进入mongoDB后台后,它默认会链接到 test 文档(数据库)

root@iZ23und3yqhZ:~# mongo
MongoDB shell version: 2.4.9
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttp://docs.mongodb.org/
Questions? Try the support grouphttp://groups.google.com/group/mongodb-user
>

现在让我们插入一些简单的数据,并对插入的数据进行检索

> db.runoob.insert({x:10})
> db.runoob.find()
{ "_id" : ObjectId("586df25ead93a0064a40a3ae"), "x" : 10 }
>

0x4: MongoDb web 用户界面

MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest

./mongod --dbpath=/data/db --rest

MongoDB 的 Web 界面访问端口比服务的端口多1000 如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017

Relevant Link:

http://www.runoob.com/mongodb/mongodb-linux-install.html

2. 未授权访问漏洞

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

0x1: 漏洞成因

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

Relevant Link:

https://www.secpulse.com/archives/27090.html
http://webscan.360.cn/vul/view/vulid/3558

3. 漏洞修复及加固

0x1: 修改默认端口

修改默认的mongoDB端口(默认为: TCP 27017)为其他端口

0x2: 不要开放到公网0.0.0.0

vim /etc/mongodb.conf
bind_ip = 127.0.0.1

和redis一样,mongodb最好只开放本地监听,至少不能是0.0.0.0

0x3: 禁用HTTP和REST端口

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

0x4: 开启日志审计功能

审计功能可以用来记录用户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发生了什么事情

0x5: 开启MongoDB授权

在admin 数据库中创建用户,如 supper 密码为 sup(此处均为举例说明,请勿使用此账号密码)

> use admin
switched to db admin
> db.addUser("supper", "sup")
{"user" : "supper","readOnly" : false,"pwd" : "f4e451395b5b554788c796e5488573b2","_id" : ObjectId("586dfb12ad93a0064a40a3af")
}
> db.auth("supper","sup")
1
> exit
bye

修改配置文件

vim /etc/mongodb.conf
auth = true

Relevant Link:

https://laravel-china.org/topics/328
https://help.aliyun.com/knowledge_detail/37451.html

4. 自动化检测点

0x1: 检测是否监听到127.0.0.1

不管是配置文件里的,还是命令行参数里的,只要最终结果不是127.0.0.1,就认为是不安全的

--bind_ip 127.0.0.1
or
vim /etc/mongodb.conf
bind_ip = 127.0.0.1

0x2: 检测是否开启auth认证

mongod --auth
or
vim /etc/mongodb.conf
auth = true

via

转载于:https://www.cnblogs.com/Primzahl/p/6257852.html

[Reproduced works]MongoDB Unauthorized Access Vulnerability相关推荐

  1. arcgis10.3 Unauthorized Access无权限解决方法

    问题描述 新建站点之后,无访问权限 解决方法: 清除缓存 声明 1)文章来源实践,存在任何疑问请留言!感谢您的阅读 2)转载请标注来源,感谢

  2. Vxscan:一款实用综合扫描工具

    介绍 Vxscan是用python3写的综合扫描工具,主要用来敏感文件探测(目录扫描与js泄露),WAF/CDN识别,端口扫描,指纹/服务识别,操作系统识别,弱口令探测,POC扫描,SQL注入,绕过C ...

  3. 发现WinSRV2003SP1并没有包含ASP+Access的BUG更新

    看了Windows Server 2003 SP1的LIST后,发现解决Win2003上运行ASP+Access的BUG补丁没有包含在里面.很郁闷,真的很郁闷!苦苦等待的关键性更新却没有包含,看来微软 ...

  4. Apache Airflow Unauthorized

    声明 本程序仅供于学习交流,请使用者遵守<中华人民共和国网络安全法>,勿将此脚本用于非授权的测试,脚本开发者不负任何连带法律责任. 代码 {"Name": " ...

  5. 计算机英语讲课笔记02

    文章目录 I. The Result of Sign-in II. Arithmetic Operations 1. Addition 2. Subtraction 3. Multiplication ...

  6. 超文本传输协议版本 2 [http/2 spec]

    Github:中英对照版 超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/ ...

  7. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...

  8. HTTP 2.0 中文版

    HTTP 2.0 中文版 开源中国的 IT 公司开源软件整理计划介绍 HTTP 全称为 HyperText Transfer Protocol,中文叫做超文本传输协议.用于 Web  应用层传输,是 ...

  9. 终极WordPress安全指南-分步指南(2020)

    WordPress security is a topic of huge importance for every website owner. Google blacklists around 1 ...

最新文章

  1. 封装 vue 组件的过程记录
  2. oracle读书记录
  3. 预告|开源操作系统年度技术会议
  4. java线程-保护性暂停(wait,notify实现)
  5. 故障码123401_电力系统规划设计对电力工程设计的应用
  6. 传说之下地图素材_【开阔眼界】地图上的史记——名著轻松读
  7. 在SQL中检查约束-用MySQL和SQL Server语法示例解释
  8. oracle 数据泵 详解
  9. Java类加载机制与反射
  10. 鸿鹄系统和鸿蒙系统区别,鸿蒙系统现身,搭配升降式镜头和鸿鹄芯片,你以为是手机?...
  11. html网页中wmode,关于html:Quicktime-Wmode透明问题
  12. Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)
  13. EXTJS资源库管理平台 2013.5.26-在线制作头像
  14. 无线充电动牙刷PCBA单片机方案牙刷无线充底座IC芯片
  15. 腾讯43亿QQ号码用完后怎么办?
  16. Error unpacking rpm package initscripts解决方案
  17. 如何成为数字化人才?
  18. 做题总结——王母娘娘又双叒叕来难为茶山牛了
  19. linux卸载clamav,CentOS下ClamAV反病毒软件包更新
  20. 用余弦定理求三角形内角

热门文章

  1. 沐风:小程序推广高手速成秘笈
  2. 数字图像处理与Python实现-沃尔什-哈达玛变换(Walsh-Hadmard Transform,WHT)
  3. kubeadm reset重新初始化过程
  4. fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)
  5. 美允许4G技术与WiFi共享5G频段;全球移动用户将达50亿│IoT黑板报
  6. 怎样给pdf添加水印,给pdf添加水印的两个方法
  7. C语言数据结构代码——有向图
  8. 四、jQuery 中的事件和动画(嘎嘎详细)
  9. oracle10g精简版配置,oracle 10g 精简版安装步骤分享
  10. WIN7 64位系统安装CodeWarrior 6.3及BDM驱动