Memcache Commands

Support HackTricks

Commands Cheat-Sheet

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

Los comandos soportados (los oficiales y algunos no oficiales) están documentados en el doc/protocol.txt.

Lamentablemente, la descripción de la sintaxis no es realmente clara y un simple comando de ayuda que liste los comandos existentes sería mucho mejor. Aquí hay un resumen de los comandos que puedes encontrar en el source (a partir del 19.08.2016):

CommandDescriptionExample

get

Lee un valor

get mykey

set

Establece una clave incondicionalmente

set mykey <flags> <ttl> <size> <p>Asegúrate de usar \r\n como saltos de línea al usar herramientas de línea de comandos de Unix. Por ejemplo</p> printf "set mykey 0 60 4\r\ndata\r\n"

add

Agrega una nueva clave

add newkey 0 60 5

replace

Sobrescribe una clave existente

replace key 0 60 5

append

Agrega datos a una clave existente

append key 0 60 15

prepend

Precede datos a una clave existente

prepend key 0 60 15

incr

Incrementa el valor numérico de la clave por un número dado

incr mykey 2

decr

Decrementa el valor numérico de la clave por un número dado

decr mykey 5

delete

Elimina una clave existente

delete mykey

flush_all

Invalida todos los elementos inmediatamente

flush_all

flush_all

Invalida todos los elementos en n segundos

flush_all 900

stats

Imprime estadísticas generales

stats

Imprime estadísticas de memoria

stats slabs

Imprime estadísticas de asignación de nivel superior

stats malloc

Imprime información sobre los elementos

stats items

stats detail

stats sizes

Restablece los contadores de estadísticas

stats reset

lru_crawler metadump

Volcar (la mayor parte de) los metadatos de (todos) los elementos en la caché

lru_crawler metadump all

version

Imprime la versión del servidor.

version

verbosity

Aumenta el nivel de registro

verbosity

quit

Termina la sesión

quit

Traffic Statistics

Puedes consultar las estadísticas de tráfico actuales usando el comando

stats

Obtendrás un listado que muestra el número de conexiones, bytes entrantes/salientes y mucho más.

Ejemplo de salida:

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

Estadísticas de Memoria

Puedes consultar las estadísticas de memoria actuales usando

stats slabs
# Memcached Commands

Memcached es un sistema de almacenamiento en caché de objetos en memoria que se utiliza para acelerar aplicaciones web al aligerar la carga de bases de datos. A continuación se presentan algunos comandos comunes de Memcached.

## Comandos Básicos

- **set**: Almacena un valor en la caché.
- **get**: Recupera un valor de la caché.
- **delete**: Elimina un valor de la caché.
- **flush_all**: Limpia todos los datos de la caché.

## Comandos Avanzados

- **incr**: Incrementa el valor de una clave.
- **decr**: Decrementa el valor de una clave.
- **cas**: Comando de comparación y cambio.

## Ejemplo de Uso

```bash
set mykey 0 900 9

Este comando almacena el valor 9 en la clave mykey con una duración de 900 segundos.

get mykey

Este comando recupera el valor almacenado en 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

Si no está seguro de si tiene suficiente memoria para su instancia de memcached, siempre esté atento a los contadores de "evictions" proporcionados por el comando "stats". Si tiene suficiente memoria para la instancia, el contador de "evictions" debería ser 0 o al menos no estar aumentando.

#### ¿Qué Claves Se Usan? <a href="#which-keys-are-used" id="which-keys-are-used"></a>

No hay una función incorporada para determinar directamente el conjunto actual de claves. Sin embargo, puede usar el

stats items

comando para determinar cuántas claves existen.

stats items STAT items:1:number 220 STAT items:1:age 83095 STAT items:2:number 7 STAT items:2:age 1405 [...] END

Esto al menos ayuda a ver si se utilizan claves. Para volcar los nombres de las claves desde un script PHP que ya realiza el acceso a memcache, puedes usar el código PHP de [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html).

<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>

<div data-gb-custom-block data-tag="embed" data-url='https://websec.nl/'></div>

<div data-gb-custom-block data-tag="hint" data-style='success'>

Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

<details>

<summary>Apoya a HackTricks</summary>

* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.

</details>

</div>

Last updated