mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 16:10:54 +00:00
172 lines
14 KiB
Markdown
172 lines
14 KiB
Markdown
# Memcache Commands
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<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">\
|
|
Learn & practice GCP Hacking: <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>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
|
|
|
{% embed url="https://websec.nl/" %}
|
|
|
|
|
|
## Commands Cheat-Sheet
|
|
|
|
**From** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
|
|
|
|
Les commandes supportées (les officielles et certaines non officielles) sont documentées dans le document [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt).
|
|
|
|
Malheureusement, la description de la syntaxe n'est pas vraiment claire et une simple commande d'aide listant les commandes existantes serait beaucoup mieux. Voici un aperçu des commandes que vous pouvez trouver dans la [source](https://github.com/memcached/memcached) (à partir du 19.08.2016) :
|
|
|
|
| Command | Description | Example |
|
|
| --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| get | Lit une valeur | `get mykey` |
|
|
| set | Définit une clé sans condition | <p><code>set mykey <flags> <ttl> <size></code><br><br><p>Assurez-vous d'utiliser \r\n comme sauts de ligne lors de l'utilisation des outils CLI Unix. Par exemple</p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
|
|
| add | Ajoute une nouvelle clé | `add newkey 0 60 5` |
|
|
| replace | Écrase une clé existante | `replace key 0 60 5` |
|
|
| append | Ajoute des données à une clé existante | `append key 0 60 15` |
|
|
| prepend | Prépende des données à une clé existante | `prepend key 0 60 15` |
|
|
| incr | Incrémente la valeur numérique d'une clé donnée | `incr mykey 2` |
|
|
| decr | Décrémente la valeur numérique d'une clé donnée | `decr mykey 5` |
|
|
| delete | Supprime une clé existante | `delete mykey` |
|
|
| flush\_all | Invalide tous les éléments immédiatement | `flush_all` |
|
|
| flush\_all | Invalide tous les éléments dans n secondes | `flush_all 900` |
|
|
| stats | Imprime des statistiques générales | `stats` |
|
|
| | Imprime des statistiques de mémoire | `stats slabs` |
|
|
| | Imprime des statistiques d'allocation de niveau supérieur | `stats malloc` |
|
|
| | Imprime des informations sur les éléments | `stats items` |
|
|
| | | `stats detail` |
|
|
| | | `stats sizes` |
|
|
| | Réinitialise les compteurs de statistiques | `stats reset` |
|
|
| lru\_crawler metadump | Dump (la plupart) des métadonnées pour (tous) les éléments dans le cache | `lru_crawler metadump all` |
|
|
| version | Imprime la version du serveur. | `version` |
|
|
| verbosity | Augmente le niveau de journalisation | `verbosity` |
|
|
| quit | Termine la session | `quit` |
|
|
|
|
#### Traffic Statistics <a href="#traffic-statistics" id="traffic-statistics"></a>
|
|
|
|
Vous pouvez interroger les statistiques de trafic actuelles en utilisant la commande
|
|
```
|
|
stats
|
|
```
|
|
Vous obtiendrez une liste qui sert le nombre de connexions, d'octets entrants/sortants et bien plus encore.
|
|
|
|
Exemple de sortie :
|
|
```
|
|
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
|
|
```
|
|
#### Statistiques de Mémoire <a href="#memory-statistics" id="memory-statistics"></a>
|
|
|
|
Vous pouvez interroger les statistiques de mémoire actuelles en utilisant
|
|
```
|
|
stats slabs
|
|
```
|
|
```markdown
|
|
# Memcache Commands
|
|
|
|
## Basic Commands
|
|
|
|
- `set`: Définit une valeur pour une clé.
|
|
- `get`: Récupère la valeur d'une clé.
|
|
- `delete`: Supprime une clé et sa valeur.
|
|
|
|
## Advanced Commands
|
|
|
|
- `incr`: Incrémente la valeur d'une clé.
|
|
- `decr`: Décrémente la valeur d'une clé.
|
|
- `flush_all`: Efface toutes les clés et valeurs.
|
|
|
|
## Usage
|
|
|
|
Pour utiliser ces commandes, connectez-vous à votre serveur Memcache et exécutez les commandes appropriées.
|
|
```
|
|
```
|
|
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 vous n'êtes pas sûr d'avoir suffisamment de mémoire pour votre instance memcached, surveillez toujours les compteurs "evictions" fournis par la commande "stats". Si vous avez suffisamment de mémoire pour l'instance, le compteur "evictions" devrait être 0 ou du moins ne pas augmenter.
|
|
|
|
#### Quelles clés sont utilisées ? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
|
|
|
|
Il n'y a pas de fonction intégrée pour déterminer directement l'ensemble actuel des clés. Cependant, vous pouvez utiliser le
|
|
```
|
|
stats items
|
|
```
|
|
commande pour déterminer combien de clés existent.
|
|
```
|
|
stats items
|
|
STAT items:1:number 220
|
|
STAT items:1:age 83095
|
|
STAT items:2:number 7
|
|
STAT items:2:age 1405
|
|
[...]
|
|
END
|
|
```
|
|
Cela aide au moins à voir si des clés sont utilisées. Pour extraire les noms de clés d'un script PHP qui effectue déjà l'accès à memcache, vous pouvez utiliser le code 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>
|
|
|
|
{% embed url="https://websec.nl/" %}
|
|
|
|
{% hint style="success" %}
|
|
Apprenez et pratiquez le hacking 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">\
|
|
Apprenez et pratiquez le hacking 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>Soutenir HackTricks</summary>
|
|
|
|
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
|
|
|
</details>
|
|
{% endhint %}
|