Memcached介绍

Memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。

Memcached服务默认端口号为11211,连接方式如下

telnet IP 11211
nc -vv IP 11211

Memcached命令

下面列举Memcached服务器常用的命令。

  • stats:输出 Memcached 服务信息。下面详细解释每个状态项

    pid:memcache服务器进程ID
    uptime:服务器已运行秒数
    time:服务器当前Unix时间戳
    version:memcache版本
    pointer_size:操作系统指针大小
    rusage_user:进程累计用户时间
    rusage_system:进程累计系统时间
    curr_connections:当前连接数量
    total_connections:Memcached运行以来连接总数
    connection_structures:Memcached分配的连接结构数量
    cmd_get:get命令请求次数
    cmd_set:set命令请求次数
    cmd_flush:flush命令请求次数
    get_hits:get命令命中次数
    get_misses:get命令未命中次数
    delete_misses:delete命令未命中次数
    delete_hits:delete命令命中次数
    incr_misses:incr命令未命中次数
    incr_hits:incr命令命中次数
    decr_misses:decr命令未命中次数
    decr_hits:decr命令命中次数
    cas_misses:cas命令未命中次数
    cas_hits:cas命令命中次数
    cas_badval:使用擦拭次数
    auth_cmds:认证命令处理的次数
    auth_errors:认证失败数目
    bytes_read:读取总字节数
    bytes_written:发送总字节数
    limit_maxbytes:分配的内存总大小(字节)
    accepting_conns:服务器是否达到过最大连接(0/1)
    listen_disabled_num:失效的监听数
    threads:当前线程数
    conn_yields:连接操作主动放弃数目
    bytes:当前存储占用的字节数
    curr_items:当前存储的数据总数
    total_items:启动以来存储的数据总数
    evictions:LRU释放的对象数目
    reclaimed:已过期的数据条目来存储新数据的数目
  • stats items:查看缓存中存储的键值对的统计信息

  • set:添加/更新键

    image-20240425224936163

    image-20240425224947712

  • add:添加键

    image-20240425225418346

    image-20240425225430362

  • get:获取键的值

    image-20240425225030852

  • delete:删除键

    image-20240425225224392

Memcached未授权访问

由于Memcached安全设计缺陷,默认的11211端口不需要密码即可访问,导致攻击者可直接连接Memcached服务并获取其中的信息,造成信息泄露。

对于Memcached未授权访问,可以使用nmap的脚本扫描验证,如下

nmap -sV -p11211 --script="memcached-info" IP

image-20240425181300043

出现Authentication: no即代表Memcached存在未授权访问

鸣谢

Comments

2024-04-25

⬆︎TOP