mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
162 lines
13 KiB
Markdown
162 lines
13 KiB
Markdown
# Komendy Memcache
|
|
|
|
<details>
|
|
|
|
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
|
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
|
|
|
|
</details>
|
|
|
|
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
|
|
|
{% embed url="https://websec.nl/" %}
|
|
|
|
## Arkusz pomocy komend
|
|
|
|
**Z** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
|
|
|
|
Obsługiwane komendy (oficjalne i nieoficjalne) są udokumentowane w dokumencie [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt).
|
|
|
|
Niestety opis składni nie jest zbyt czytelny, a prosta komenda pomocy wymieniająca istniejące komendy byłaby o wiele lepsza. Oto przegląd komend, które można znaleźć w [źródle](https://github.com/memcached/memcached) (stan na 19.08.2016):
|
|
|
|
| Komenda | Opis | Przykład |
|
|
| --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| get | Odczytuje wartość | `get mykey` |
|
|
| set | Ustawia klucz bezwarunkowo | <p><code>set mykey <flags> <ttl> <size></code><br><br><p>Upewnij się, że używasz \r\n jako znaków nowej linii przy użyciu narzędzi wiersza poleceń Unix. Na przykład</p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
|
|
| add | Dodaje nowy klucz | `add newkey 0 60 5` |
|
|
| replace | Nadpisuje istniejący klucz | `replace key 0 60 5` |
|
|
| append | Dołącza dane do istniejącego klucza | `append key 0 60 15` |
|
|
| prepend | Dodaje dane na początku istniejącego klucza | `prepend key 0 60 15` |
|
|
| incr | Zwiększa wartość numerycznego klucza o podaną liczbę | `incr mykey 2` |
|
|
| decr | Zmniejsza wartość numerycznego klucza o podaną liczbę | `decr mykey 5` |
|
|
| delete | Usuwa istniejący klucz | `delete mykey` |
|
|
| flush\_all | Natychmiast unieważnia wszystkie elementy | `flush_all` |
|
|
| flush\_all | Unieważnia wszystkie elementy za n sekund | `flush_all 900` |
|
|
| stats | Wyświetla ogólne statystyki | `stats` |
|
|
| | Wyświetla statystyki pamięci | `stats slabs` |
|
|
| | Wyświetla statystyki alokacji na wyższym poziomie | `stats malloc` |
|
|
| | Wyświetla informacje o elementach | `stats items` |
|
|
| | | `stats detail` |
|
|
| | | `stats sizes` |
|
|
| | Resetuje liczniki statystyk | `stats reset` |
|
|
| lru\_crawler metadump | Zrzutuje (większość) metadane (wszystkich) elementów w pamięci | `lru_crawler metadump all` |
|
|
| version | Wyświetla wersję serwera | `version` |
|
|
| verbosity | Zwiększa poziom logowania | `verbosity` |
|
|
| quit | Zamyka sesję | `quit` |
|
|
|
|
#### Statystyki ruchu <a href="#traffic-statistics" id="traffic-statistics"></a>
|
|
|
|
Możesz zapytać o bieżące statystyki ruchu, używając polecenia
|
|
```
|
|
stats
|
|
```
|
|
Otrzymasz listę, która zawiera liczbę połączeń, bajty wejścia/wyjścia i wiele innych.
|
|
|
|
Przykładowy wynik:
|
|
```
|
|
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
|
|
```
|
|
#### Statystyki pamięci <a href="#memory-statistics" id="memory-statistics"></a>
|
|
|
|
Możesz zapytać o bieżące statystyki pamięci używając
|
|
```
|
|
stats slabs
|
|
```
|
|
Przykładowy wynik:
|
|
```
|
|
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
|
|
```
|
|
Jeśli nie jesteś pewien, czy masz wystarczająco pamięci dla swojego egzemplarza memcached, zawsze zwracaj uwagę na liczniki "evictions" podane przez polecenie "stats". Jeśli masz wystarczająco pamięci dla egzemplarza, licznik "evictions" powinien wynosić 0 lub przynajmniej nie wzrastać.
|
|
|
|
#### Które klucze są używane? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
|
|
|
|
Nie ma wbudowanej funkcji do bezpośredniego określenia bieżącego zestawu kluczy. Jednak można użyć
|
|
```
|
|
stats items
|
|
```
|
|
### English:
|
|
|
|
```
|
|
**stats items**
|
|
```
|
|
|
|
### Polish:
|
|
|
|
```
|
|
**statystyki elementów**
|
|
```
|
|
```
|
|
stats items
|
|
STAT items:1:number 220
|
|
STAT items:1:age 83095
|
|
STAT items:2:number 7
|
|
STAT items:2:age 1405
|
|
[...]
|
|
END
|
|
```
|
|
To przynajmniej pomaga zobaczyć, czy jakiekolwiek klucze są używane. Aby wypisać nazwy kluczy z skryptu PHP, który już ma dostęp do memcache, można użyć kodu PHP z [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/" %}
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
|
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
|
|
|
|
</details>
|