<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
> **Memcached** (pronúncia: mem-cached, mem-cash-dee) é um sistema de [cache de memória](https://en.wikipedia.org/wiki/Memory\_caching) distribuído de propósito geral. É frequentemente usado para acelerar sites dinâmicos baseados em banco de dados, armazenando em cache dados e objetos na RAM para reduzir o número de vezes que uma fonte de dados externa (como um banco de dados ou API) precisa ser lida.
No reino do memcache, um protocolo que auxilia na organização de dados por slabs, existem comandos específicos para inspecionar os dados armazenados, embora com limitações notáveis:
1. As chaves só podem ser despejadas por classe de slab, agrupando chaves de tamanho de conteúdo semelhante.
2. Existe um limite de uma página por classe de slab, equivalente a 1MB de dados.
3. Este recurso é não oficial e pode ser descontinuado a qualquer momento, como discutido em [fóruns da comunidade](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM).
A limitação de apenas poder despejar 1MB de potencialmente gigabytes de dados é particularmente significativa. No entanto, essa funcionalidade ainda pode oferecer insights sobre padrões de uso de chaves, dependendo das necessidades específicas. Para aqueles menos interessados na mecânica, uma visita à [seção de ferramentas](https://lzone.de/cheat-sheet/memcached#tools) revela utilitários para despejo abrangente. Alternativamente, o processo de usar telnet para interação direta com configurações do memcached é descrito abaixo.
A organização da memória do Memcache é fundamental. Iniciar o memcache com a opção "-vv" revela as classes de slab que ele gera, conforme mostrado abaixo:
Este output revela os tipos de slab ativos, chunks utilizados e estatísticas operacionais, oferecendo insights sobre a eficiência das operações de leitura e escrita.
Outro comando útil, "stats items", fornece dados sobre evicções, restrições de memória e ciclos de vida dos itens:
Com a versão do memcache 1.4.31 e acima, um novo método mais seguro para despejar chaves em um ambiente de produção é introduzido, utilizando o modo não-bloqueante conforme detalhado nas [notas de lançamento](https://github.com/memcached/memcached/wiki/ReleaseNotes1431). Esta abordagem gera uma saída extensa, portanto, é recomendado utilizar o comando 'nc' para eficiência. Exemplos incluem:
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | GUI de Monitoramento do Memcache que também permite despejar chaves | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Congela seu processo memcached!!!** Tenha cuidado ao usar isso em produção. Ainda assim, você pode contornar a limitação de 1MB e realmente despejar **todas** as chaves. | | |
Se você tentar "definir" ou "adicionar" uma chave com um tempo limite maior do que o máximo permitido, você pode não obter o que espera, pois o memcached então trata o valor como um carimbo de data/hora Unix. Além disso, se o carimbo de data/hora estiver no passado, não fará nada. Seu comando falhará silenciosamente.
Apesar da documentação mencionar algo sobre o envolvimento de 64 bits em um valor que transborda usando "incr", faz com que o valor desapareça. É necessário criá-lo novamente usando "add"/"set".
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
- Se deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
- Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Compartilhe seus 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).