hacktricks/network-services-pentesting/11211-memcache/memcache-commands.md
2023-07-07 23:42:27 +00:00

18 KiB
Raw Blame History

Memcacheコマンド

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

コマンドのチートシート

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

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

残念ながら、構文の説明は実際には明確ではなく、既存のコマンドをリストアップする単純なヘルプコマンドの方がはるかに良いでしょう。以下は、source2016年8月19日現在で見つけることができるコマンドの概要です

コマンド 説明
get 値を読み取る get mykey
set キーを無条件で設定する

set mykey <flags> <ttl> <size>

<p>Unix CLIツールを使用する場合は、改行として\r\nを使用してください。例えば</p> 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 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

Introduction

Memcache is a widely used distributed memory caching system. It is commonly used to speed up dynamic database-driven websites by caching data and objects in memory to reduce the number of times an external data source (such as a database or API) needs to be accessed.

Basic Commands

SET

The SET command is used to store a value in the cache. It takes three arguments: the key, the value, and an optional expiration time in seconds.

SET key value [expiration]

GET

The GET command is used to retrieve a value from the cache. It takes one argument: the key.

GET key

DELETE

The DELETE command is used to remove a value from the cache. It takes one argument: the key.

DELETE key

FLUSH_ALL

The FLUSH_ALL command is used to remove all values from the cache.

FLUSH_ALL

Advanced Commands

INCR

The INCR command is used to increment the value of a key by a specified amount. If the key does not exist, it is created with an initial value of 0.

INCR key amount

DECR

The DECR command is used to decrement the value of a key by a specified amount. If the key does not exist, it is created with an initial value of 0.

DECR key amount

APPEND

The APPEND command is used to append a value to the existing value of a key.

APPEND key value

PREPEND

The PREPEND command is used to prepend a value to the existing value of a key.

PREPEND key value

CAS

The CAS command is used to perform a "check and set" operation. It allows you to update a value only if it has not been modified by another client since you last retrieved it.

CAS key value cas_unique_id [expiration]

STATS

The STATS command is used to retrieve statistics about the memcache server.

STATS

VERSION

The VERSION command is used to retrieve the version of the memcache server.

VERSION

FLUSH_ALL

The FLUSH_ALL command is used to remove all values from the cache.

FLUSH_ALL

QUIT

The QUIT command is used to close the connection to the memcache server.

QUIT

Conclusion

These are some of the most commonly used commands in memcache. Understanding how to use these commands effectively can greatly enhance your ability to work with memcache and optimize the performance of your applications.

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 Exist

To determine the number of keys that exist in a Memcache server, you can use the stats command. This command provides statistics about the server, including the total number of keys stored.

To execute the command, follow these steps:

  1. Connect to the Memcache server using a Memcache client.
  2. Send the stats command to the server.
  3. Parse the response to extract the value of the total_items statistic.

Here is an example of how to execute the command using Telnet:

$ telnet <memcache_server_ip> 11211
stats

The server will respond with a list of statistics. Look for the total_items statistic and note its value. This value represents the total number of keys stored in the Memcache server.

Keep in mind that the stats command provides various other statistics as well, which can be useful for monitoring and troubleshooting purposes.

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

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥