# Memcache Commands {% hint style="success" %} Aprenda e pratique Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
{% endhint %}
{% embed url="https://websec.nl/" %} ## Commands Cheat-Sheet **De** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached) Os comandos suportados (os oficiais e alguns não oficiais) estão documentados no documento [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt). Infelizmente, a descrição da sintaxe não é realmente 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 [source](https://github.com/memcached/memcached) (a partir de 19.08.2016): | Command | Description | Example | | --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | get | Lê um valor | `get mykey` | | set | Define uma chave incondicionalmente |

set mykey <flags> <ttl> <size>

<p>Certifique-se de usar \r\n como quebras de linha ao usar ferramentas de CLI Unix. Por exemplo</p> printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211

| | add | Adiciona uma nova chave | `add newkey 0 60 5` | | replace | Sobrescreve a chave existente | `replace key 0 60 5` | | append | Anexa dados à chave existente | `append key 0 60 15` | | prepend | Precede dados à chave existente | `prepend key 0 60 15` | | incr | Incrementa o valor da chave numérica pelo número dado | `incr mykey 2` | | decr | Decrementa o valor da chave numérica pelo número dado | `decr mykey 5` | | delete | Deleta 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 maior parte) 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 | Termina a sessão | `quit` | #### Traffic Statistics Você pode consultar as estatísticas de tráfego atuais usando o comando ``` stats ``` Você receberá uma lista que serve o número de conexões, bytes de entrada/saída 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 ``` ```markdown # Memcache Commands ## Comandos Básicos Os comandos básicos do Memcache incluem: - `set`: Armazena um valor com uma chave específica. - `get`: Recupera o valor associado a uma chave. - `delete`: Remove um valor associado a uma chave. - `flush_all`: Limpa todos os dados armazenados. ## Comandos Avançados Os comandos avançados incluem: - `incr`: Incrementa o valor de uma chave. - `decr`: Decrementa o valor de uma chave. - `cas`: Realiza uma operação de comparação e troca. ## Exemplo de Uso Para armazenar um valor: ``` set mykey 0 900 4 test ``` Para recuperar o valor: ``` get mykey ``` ``` ``` 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 tiver certeza se tem memória suficiente para sua instância memcached, sempre fique atento aos 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á uma função embutida para determinar diretamente o conjunto atual de chaves. No entanto, você pode usar o ``` stats items ``` comando para determinar quantas chaves existem. ``` stats items STAT items:1:number 220 STAT items:1:age 83095 STAT items:2:number 7 STAT items:2:age 1405 [...] END ``` Isso pelo menos ajuda a ver se alguma chave está sendo usada. Para despejar os nomes das chaves de um script PHP que já faz o acesso ao memcache, você pode usar o código PHP do [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html).
{% embed url="https://websec.nl/" %} {% hint style="success" %} Aprenda e pratique Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}