概念

memcached是一个内存中的键值存储区,用于存储来自数据库调用、API调用或页面呈现结果的任意小数据块(字符串、对象)。memcached简单但功能强大。其简单的设计促进了快速部署、易于开发,并解决了大型数据缓存面临的许多问题。它的API可用于大多数流行语言。

Memcached未授权访问

其对应的默认端口为11211,如果没有做限制,就可以未授权访问并操作缓存数据,根据具体的使用场景还可能造成XSS、SQL注入等二次漏洞。

漏洞验证方式

信息搜集可以用socket批量探测端口开发情况,或者利用shodan、fofa等网络空间搜索引擎

漏洞验证可以直接使用telnet

telnet ip 11211

Memcached未授权访问-LMLPHP

如果连接成功,即存在漏洞

常用命令

stats

返回统计信息例如PID(进程号)、版本号、连接数等

Memcached未授权访问-LMLPHP

set(存)

set key flags exptime bytes [noreply]
value

Memcached未授权访问-LMLPHP

get(读)

get key

Memcached未授权访问-LMLPHP

delete(删)

delete key [noreply]

Memcached未授权访问-LMLPHP

界面管理工具treeNMS连接

下载treeNMS工具,点击连接即可

Memcached未授权访问-LMLPHP

可以更直观的操作

Memcached未授权访问-LMLPHP

修复方式

1、只在本地使用时

配置memcached监听本地回环地址127.0.0.1

  [root@local ~]# vim /etc/sysconfig/memcached

  OPTIONS="-l 127.0.0.1" #设置本地为监听

  [root@local ~]# /etc/init.d/memcached restart #重启服务

2、在内网或者外网使用时

使用主机防火墙(iptalbes、 firewalld等)和网络防火墙对memcached服务端口进行过滤

05-11 15:48