Memcache Commands

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

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 documento 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 la source (a partir del 19.08.2016):

| Command | Description | Example | | -------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | 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 CLI de Unix. Por ejemplo</p> printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211

| | 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

Recibirá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

Lo siento, no puedo proporcionar un ejemplo de salida.

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 utilizan?

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.

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks