14 KiB
Memcache Commands
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
{% embed url="https://websec.nl/" %}
Commands Cheat-Sheet
From https://lzone.de/cheat-sheet/memcached
지원되는 명령어(공식 및 비공식)는 doc/protocol.txt 문서에 문서화되어 있습니다.
안타깝게도 구문 설명이 명확하지 않으며, 기존 명령어를 나열하는 간단한 도움 명령어가 훨씬 더 좋을 것입니다. 다음은 source에서 찾을 수 있는 명령어의 개요입니다(2016년 8월 19일 기준):
Command | Description | Example |
---|---|---|
get | 값을 읽습니다. | get mykey |
set | 키를 무조건 설정합니다. |
|
add | 새 키를 추가합니다. | add newkey 0 60 5 |
replace | 기존 키를 덮어씁니다. | replace key 0 60 5 |
append | 기존 키에 데이터를 추가합니다. | append key 0 60 15 |
prepend | 기존 키 앞에 데이터를 추가합니다. | prepend key 0 60 15 |
incr | 주어진 숫자만큼 숫자 키 값을 증가시킵니다. | incr mykey 2 |
decr | 주어진 숫자만큼 숫자 키 값을 감소시킵니다. | decr mykey 5 |
delete | 기존 키를 삭제합니다. | delete mykey |
flush_all | 모든 항목을 즉시 무효화합니다. | flush_all |
flush_all | n 초 후 모든 항목을 무효화합니다. | flush_all 900 |
stats | 일반 통계를 출력합니다. | stats |
메모리 통계를 출력합니다. | stats slabs |
|
높은 수준의 할당 통계를 출력합니다. | stats malloc |
|
항목에 대한 정보를 출력합니다. | stats items |
|
stats detail |
||
stats sizes |
||
통계 카운터를 재설정합니다. | stats reset |
|
lru_crawler metadump | 캐시에 있는 항목(대부분)의 메타데이터를 덤프합니다. | lru_crawler metadump all |
version | 서버 버전을 출력합니다. | version |
verbosity | 로그 수준을 증가시킵니다. | verbosity |
quit | 세션을 종료합니다. | quit |
Traffic Statistics
현재 트래픽 통계를 쿼리하려면 다음 명령어를 사용하세요.
stats
당신은 연결 수, 입출력 바이트 및 그 외 많은 정보를 제공하는 목록을 받게 됩니다.
예시 출력:
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
Memory Statistics
현재 메모리 통계를 쿼리할 수 있습니다.
stats slabs
# Memcached Commands
Memcached는 메모리 기반의 캐시 시스템으로, 다양한 명령어를 통해 데이터를 저장하고 검색할 수 있습니다. 다음은 Memcached에서 사용할 수 있는 주요 명령어입니다.
## 기본 명령어
- **set**: 데이터를 저장합니다.
- **get**: 저장된 데이터를 검색합니다.
- **delete**: 저장된 데이터를 삭제합니다.
- **flush_all**: 모든 데이터를 삭제합니다.
## 고급 명령어
- **increment**: 특정 키의 값을 증가시킵니다.
- **decrement**: 특정 키의 값을 감소시킵니다.
- **cas**: 특정 키의 값을 조건부로 설정합니다.
## 사용 예시
```bash
set mykey 0 900 9
data12345
이 명령어는 mykey
라는 키에 data12345
라는 데이터를 저장합니다.
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
메모리 부족 여부가 확실하지 않은 경우, 항상 “stats” 명령어로 제공되는 “evictions” 카운터를 확인하세요. 인스턴스에 충분한 메모리가 있다면 “evictions” 카운터는 0이거나 최소한 증가하지 않아야 합니다.
#### 어떤 키가 사용되나요? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
현재 키 집합을 직접적으로 결정하는 내장 함수는 없습니다. 그러나 다음을 사용할 수 있습니다.
stats items
키가 몇 개 존재하는지 확인하는 명령.
stats items STAT items:1:number 220 STAT items:1:age 83095 STAT items:2:number 7 STAT items:2:age 1405 [...] END
이것은 적어도 어떤 키가 사용되는지 확인하는 데 도움이 됩니다. 이미 memcache 접근을 수행하는 PHP 스크립트에서 키 이름을 덤프하려면 [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html)에서 PHP 코드를 사용할 수 있습니다.
<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" %}
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">\
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>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.**
</details>
{% endhint %}