hacktricks/network-services-pentesting/11211-memcache/memcache-commands.md
2023-06-06 18:56:34 +00:00

12 KiB

Comandos Memcache

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

Comandos Cheat-Sheet

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

Os comandos suportados (os oficiais e alguns não oficiais) são documentados no documento doc/protocol.txt.

Infelizmente, a descrição da sintaxe não é muito clara e um simples comando de ajuda listando os comandos existentes seria muito melhor. Aqui está uma visão geral dos comandos que você pode encontrar na fonte (a partir de 19.08.2016):

Comando Descrição Exemplo
get Lê um valor get mykey
set Define uma chave incondicionalmente

set mykey <flags> <ttl> <size>

<p>Garanta o uso de \r\n como quebra de linha ao usar ferramentas Unix CLI. Por exemplo</p> printf "set mykey 0 60 4\r\ndata\r\n"

add Adiciona uma nova chave add newkey 0 60 5
replace Substitui uma chave existente replace key 0 60 5
append Anexa dados a uma chave existente append key 0 60 15
prepend Adiciona dados no início de uma chave existente prepend key 0 60 15
incr Incrementa o valor da chave numérica pelo número fornecido incr mykey 2
decr Decrementa o valor da chave numérica pelo número fornecido decr mykey 5
delete Exclui uma chave existente delete mykey
flush_all Invalida todos os itens imediatamente flush_all
flush_all Invalida todos os itens em n segundos flush_all 900
stats Imprime estatísticas gerais stats
Imprime estatísticas de memória stats slabs
Imprime estatísticas de alocação de nível superior stats malloc
Imprime informações sobre itens stats items
stats detail
stats sizes
Redefine contadores de estatísticas stats reset
lru_crawler metadump Despeja (a maioria) dos metadados para (todos) os itens no cache lru_crawler metadump all
version Imprime a versão do servidor version
verbosity Aumenta o nível de log verbosity
quit Encerra a sessão quit

Estatísticas de Tráfego

Você pode consultar as estatísticas de tráfego atuais usando o comando.

stats

Você obterá uma listagem que mostra o número de conexões, bytes enviados/recebidos e muito mais.

Exemplo de saída:

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

Estatísticas de Memória

Você pode consultar as estatísticas de memória atuais usando

stats slabs

Exemplo de Saída:

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

Se você não tem certeza se tem memória suficiente para sua instância do memcached, sempre verifique os contadores de "evictions" fornecidos pelo comando "stats". Se você tiver memória suficiente para a instância, o contador de "evictions" deve ser 0 ou pelo menos não estar aumentando.

Quais chaves são usadas?

Não há função integrada para determinar diretamente o conjunto atual de chaves. No entanto, você pode usar o comando "stats" para obter informações sobre as chaves que estão sendo usadas.

stats items

Comando para determinar quantas chaves existem.

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

Isso ajuda a ver se alguma chave é usada. Para despejar os nomes das chaves de um script PHP que já acessa o memcache, você pode usar o código PHP de 100days.de.