hacktricks/network-services-pentesting/11211-memcache/memcache-commands.md

13 KiB
Raw Blame History

Memcache 命令

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

{% embed url="https://websec.nl/" %}

命令速查表

来源 https://lzone.de/cheat-sheet/memcached

支持的命令(官方和一些非官方)在 doc/protocol.txt 文档中有记录。

遗憾的是语法描述并不是很清晰,一个简单的帮助命令列出现有命令会更好。以下是您可以在 源代码 中找到的命令概述(截至 2016 年 8 月 19 日):

命令 描述 示例
get 读取值 get mykey
set 无条件设置键

set mykey <flags> <ttl> <size>

<p>在使用 Unix CLI 工具时,请确保使用 \r\n 作为换行符。例如</p> printf "set mykey 0 60 4\r\ndata\r\n"

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

流量统计

您可以使用以下命令查询当前流量统计信息

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

内存统计

您可以使用以下命令查询当前内存统计信息

stats slabs

示例输出:

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

如果您不确定您的memcached实例是否有足够的内存请始终关注“stats”命令给出的“evictions”计数器。如果实例有足够的内存“evictions”计数器应为0或者至少不应增加。

使用了哪些键?

没有内置函数可以直接确定当前的键集。但是您可以使用

stats items

Command: stats items

To determine how many keys do exist, you can use the stats items command.

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的PHP代码。

{% embed url="https://websec.nl/" %}

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

支持HackTricks的其他方式