# Memcache コマンド
htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ!
HackTricks をサポートする他の方法:
- **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](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)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@carlospolopm** をフォローする
- **ハッキングテクニックを共有**するには、[HackTricks](https://github.com/carlospolop/hacktricks) と [HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
## コマンドチートシート
**From** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
サポートされているコマンド(公式および非公式)は、[doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) ドキュメントに記載されています。
残念ながら、構文の説明はあまり明確ではなく、既存のコマンドをリストアップする単純なヘルプコマンドの方がはるかに良いでしょう。ここでは、[source](https://github.com/memcached/memcached) で見つけられるコマンドの概要を示します(2016年8月19日現在):
| コマンド | 説明 | 例 |
| --------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | 値を読み取る | `get mykey` |
| set | キーを無条件で設定する |
set mykey <flags> <ttl> <size>
<p>Unix CLI ツールを使用する場合は、改行として \r\n を使用してください。例: printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211
|
| add | 新しいキーを追加する | `add newkey 0 60 5` |
| replace | 既存のキーを上書きする | `replace key 0 60 5` |
| append | 既存のキーにデータを追加する | `append key 0 60 15` |
| prepend | 既存のキーにデータを先頭に追加する | `prepend key 0 60 15` |
| incr | 指定された数値で数値キーの値を増やす | `incr mykey 2` |
| decr | 指定された数値で数値キーの値を減らす | `decr mykey 5` |
| delete | 既存のキーを削除する | `delete mykey` |
| flush\_all | すべてのアイテムを即座に無効にする | `flush_all` |
| flush\_all | n秒後にすべてのアイテムを無効にする | `flush_all 900` |
| stats | 一般的な統計を表示 | `stats` |
| | メモリ統計を表示 | `stats slabs` |
| | より高いレベルの割り当て統計を表示 | `stats malloc` |
| | アイテムに関する情報を表示 | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | 統計カウンターをリセットする | `stats reset` |
| lru\_crawler metadump | キャッシュ内のアイテムの(ほとんどの)メタデータをダンプする | `lru_crawler metadump all` |
| version | サーバーバージョンを表示する | `version` |
| verbosity | ログレベルを増やす | `verbosity` |
| quit | セッションを終了する | `quit` |
#### トラフィック統計
現在のトラフィック統計をクエリすることができます。
```
stats
```
以下は、接続数、バイトの入出力などを提供するリストです。
**出力例:**
```plaintext
STAT pid 1
STAT uptime 229
STAT time 1610351263
STAT version 1.4.13
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.000000
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 0
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
END
```
```
STAT pid 14868
STAT uptime 175931
STAT time 1220540125
STAT version 1.2.2
STAT pointer_size 32
STAT rusage_user 620.299700
STAT rusage_system 1545.703017
STAT curr_items 228
STAT total_items 779
STAT bytes 15525
STAT curr_connections 92
STAT total_connections 1740
STAT connection_structures 165
STAT cmd_get 7411
STAT cmd_set 28445156
STAT get_hits 5183
STAT get_misses 2228
STAT evictions 0
STAT bytes_read 2112768087
STAT bytes_written 1000038245
STAT limit_maxbytes 52428800
STAT threads 1
END
```
#### メモリ統計
現在のメモリ統計をクエリできます。
```
stats slabs
```
### Memcache Commands
#### Stats Command
The `stats` command is used to retrieve statistics from the Memcached server. This command provides information such as the total number of connections, cache hits, cache misses, and more.
Example:
```bash
$ echo "stats" | nc 11211
```
#### Set Command
The `set` command is used to set a key-value pair in the Memcached server.
Example:
```bash
$ echo "set mykey 0 0 5\r\nhello\r\n" | nc 11211
```
#### Get Command
The `get` command is used to retrieve the value associated with a key from the Memcached server.
Example:
```bash
$ echo "get mykey" | nc 11211
```
```
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
STAT 1:total_pages 1
STAT 1:total_chunks 13107
STAT 1:used_chunks 13106
STAT 1:free_chunks 1
STAT 1:free_chunks_end 12886
STAT 2:chunk_size 100
STAT 2:chunks_per_page 10485
STAT 2:total_pages 1
STAT 2:total_chunks 10485
STAT 2:used_chunks 10484
STAT 2:free_chunks 1
STAT 2:free_chunks_end 10477
[...]
STAT active_slabs 3
STAT total_malloced 3145436
END
```
#### どのキーが使用されていますか?
もしメモリキャッシュインスタンスに十分なメモリがあるかどうか確信が持てない場合は、"stats"コマンドによって与えられる"evictions"カウンターに注意してください。インスタンスに十分なメモリがある場合、"evictions"カウンターは0であるか、少なくとも増加していないはずです。
```
stats items
```
### Command to determine how many keys do exist
```plaintext
stats items
```
```
stats items
STAT items:1:number 220
STAT items:1:age 83095
STAT items:2:number 7
STAT items:2:age 1405
[...]
END
```
これにより、使用されているキーを確認できます。既にmemcacheアクセスを行っているPHPスクリプトからキー名をダンプするには、[100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html)のPHPコードを使用できます。