Memcache未授权访问漏洞

  Memcached 分布式缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。

0X00 Memcache安装

  1. 下载Mencache的windows稳定版,解压放某个盘下面

  2、在cmd命令界面)下输入 'memcached.exe -d install' 进行安装

  3、 启动 memcached.exe -d start。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

0x01 漏洞验证

telnet 10.9.9.120

无需用户名密码,可以直接连接memcache 服务的11211端口。

# stats  //查看memcache 服务状态
# stats items //查看所有items
# stats cachedump 32 0 //获得缓存key
# get :state:264861539228401373:261588 //通过key读取相应value ,获得实际缓存内容,造成敏感信息泄露

0x02 Python未授权访问脚本

#! /usr/bin/env python
# _*_ coding:utf- _*_
def Memcache_check(ip, port=, timeout=):
try:
socket.setdefaulttimeout(timeout)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, int(port)))
s.send("stats\r\n")
result = s.recv()
if "STAT version" in result:
print '[+] Memcache Unauthorized: ' +ip+':'+str(port)
except Exception, e:
pass
if __name__ == '__main__':
Elasticsearch_check("127.0.0.1")

0x03 修复方案:

因memcache无权限控制功能,所以需要用户对访问来源进行限制。

方案一:

  如果memcache没有在外网开放的必要,可在memcached启动的时候指定绑定的ip地址为 127.0.0.1。例如:

Memcache未授权访问漏洞

方案二:(注意:请谨慎配置iptables规则)

  如果memcache服务需要对外提供服务,则可以通过iptables进行访问控制,下面是只允许本机访问:

Memcache未授权访问漏洞

上述规则的意思是只允许192.168.0.2这个ip对11211端口进行访问。

关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

Memcache未授权访问漏洞

参考链接:

Windows下的Memcache安装  http://kimi.it/258.html

上一篇:jQuery 事件方法大全-超全的总结


下一篇:基于Opencv的自适应中值滤波函数selfAdaptiveMedianBlur()