Memcache未授权访问漏洞利用及修复

0x0引言~

Memcache是​​临时数据存储服务,以key-value存储格式存储数据,通过将数据块存储在缓存中,可以提高网站的整体性能,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。但由于memcached安全设计缺陷,默认的 11211 端口不需要密码即可访问,导致攻击者可直接链接memcache服务的11211端口获取数据库中信息,这可造成严重的信息泄露




文章目录


一、漏洞详情


一、漏洞描述

memcache未授权访问漏洞,默认的 11211 端口不需要密码即可访问,攻击者可获取数据库中信息,造成严重的信息泄露

二、漏洞危害

除memcached中数据可被直接读取泄漏和恶意修改外,由于memcached中的数据像正常网站用户访问提交变量一样会被后端代码处理,当处理代码存在缺陷时会再次导致不同类型的安全问题。

    不同的是,在处理前端用户直接输入的数据时一般会接受更多的安全校验,而从memcached中读取的数据则更容易被开发者认为是可信的,或者是已经通过安全校验的,因此更容易导致安全问题。

    由此可见,导致的二次安全漏洞类型一般由memcached数据使用的位置(XSS通常称之为sink)的不同而不同,如:

    (1)缓存数据未经过滤直接输出可导致XSS;

    (2)缓存数据未经过滤代入拼接的SQL注入查询语句可导致SQL注入;

    (3)缓存数据存储敏感信息(如:用户名、密码),可以通过读取操作直接泄漏;

    (4)缓存数据未经过滤直接通过system()、eval()等函数处理可导致命令执行;

    (5)缓存数据未经过滤直接在header()函数中输出,可导致CRLF漏洞(HTTP响应拆分)



漏洞探测

一、nmap探测

使用端口扫描工具nmap进行远程扫描nmap -sV -p 11211 –script memcached-info <target>


二、Telnet探测

telnet 11211,或nc -vv 11211,提示连接成功表示漏洞存在
在这里插入图片描述


三、netstat探测

执行netstat -an |grep 11211命令查看端口监听情况,回显0.0.0.0:11211,该选项表示在所有网卡进行监听,存在memcached未授权访问漏洞。如下

在这里插入图片描述


实战利用

1.漏洞验证

可以通过telnet <ip:地址> <端口(默认为TCP端口11211)访问Memcache,一旦连接到终端,可键入stats项目验证漏洞的存在,如下:
在这里插入图片描述
2.漏洞利用

由于memcached安全设计缺陷,客户端连接memcached服务器后无需认证就可读取、修改服务器缓存内容,如下:

操作指令
stats items  //查看缓存
stats cachedump 3 0 //表示读取缓存key
get value //读取敏感信息

更多memcached指令可参考下面链接:
https://www.runoob.com/Memcached/Memcached-tutorial.html

在这里插入图片描述


修补方案

一、配置memcached监听本地回环地址127.0.0.1。
1 . vim /etc/sysconfig/memcached
2 . OPTIONS=“-l 127.0.0.1” #设置本地为监听
3 . /etc/init.d/memcached restart #重启服务

二、如果业务要求指示必须通过Internet公开服务时,可使用主机防火墙(iptalbes、firewalld等)和网络防火墙对memcached服务端口进行过滤。

Memcache是一个快速、高效的分布式内存对象缓存系统,常用于提高网站性能和减轻数据库负载。要安装Memcache,需要进行以下步骤: 1. 下载安装包:首先需要下载Memcache的安装包。可以在官方网站上找到最新的稳定版本,并选择与操作系统和服务器兼容的安装包。 2. 解压安装包:下载完成后,将安装包解压到任意目录。解压后的文件夹中应该包含了安装所需的文件和脚本。 3. 安装依赖库:在安装Memcache之前,需要确保系统中已经安装了相应的依赖库。常见的依赖库有libevent和libevent-devel,可以通过包管理器安装,如yum或apt-get。 4. 编译和安装:进入解压后的Memcache文件夹,在命令行中执行编译和安装命令。通常是执行./configure,然后执行make和make install命令。这些命令会编译和安装Memcache到系统中。 5. 配置和启动:安装完成后,需要进行一些配置和启动操作。可以编辑配置文件,设置Memcache的监听地址、端口号和缓存大小等参数。然后,启动Memcache服务,可以通过执行memcached命令或使用脚本启动。 6. 测试和验证:安装完成并启动Memcache后,可以进行一些简单的测试和验证工作。可以使用telnet或memcached客户端工具连接到Memcache服务器,并进行一些数据操作,如set、get等。 总结: Memcache的安装包实际上是一个压缩文件,包含了安装所需的文件和脚本。安装Memcache之前,需要确保系统已经安装了相应的依赖库。安装过程包括解压安装包、安装依赖库、编译和安装、配置和启动、测试和验证等步骤。安装完成后,可以使用telnet或memcached客户端工具连接到Memcache服务器,并进行数据操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值