概念
memcached是一个内存中的键值存储区,用于存储来自数据库调用、API调用或页面呈现结果的任意小数据块(字符串、对象)。memcached简单但功能强大。其简单的设计促进了快速部署、易于开发,并解决了大型数据缓存面临的许多问题。它的API可用于大多数流行语言。
Memcached未授权访问
其对应的默认端口为11211,如果没有做限制,就可以未授权访问并操作缓存数据,根据具体的使用场景还可能造成XSS、SQL注入等二次漏洞。
漏洞验证方式
信息搜集可以用socket批量探测端口开发情况,或者利用shodan、fofa等网络空间搜索引擎
漏洞验证可以直接使用telnet
telnet ip 11211
如果连接成功,即存在漏洞
常用命令
stats
返回统计信息例如PID(进程号)、版本号、连接数等
set(存)
set key flags exptime bytes [noreply]
value
get(读)
get key
delete(删)
delete key [noreply]
界面管理工具treeNMS连接
下载treeNMS工具,点击连接即可
可以更直观的操作
修复方式
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服务端口进行过滤