hacktricks/network-services-pentesting/11211-memcache/memcache-commands.md

14 KiB
Raw Blame History

Memcache コマンド

htARTEHackTricks AWS Red Team Expert でAWSハッキングをゼロからヒーローまで学ぶ

HackTricks をサポートする他の方法:

コマンドチートシート

From https://lzone.de/cheat-sheet/memcached

サポートされているコマンド(公式および非公式)は、doc/protocol.txt ドキュメントに記載されています。

残念ながら、構文の説明はあまり明確ではなく、既存のコマンドをリストアップする単純なヘルプコマンドの方がはるかに良いでしょう。ここでは、source で見つけられるコマンドの概要を示します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"

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

以下は、接続数、バイトの入出力などを提供するリストです。

出力例:

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:

$ echo "stats" | nc <target_ip> 11211

Set Command

The set command is used to set a key-value pair in the Memcached server.

Example:

$ echo "set mykey 0 0 5\r\nhello\r\n" | nc <target_ip> 11211

Get Command

The get command is used to retrieve the value associated with a key from the Memcached server.

Example:

$ echo "get mykey" | nc <target_ip> 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

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のPHPコードを使用できます。