memcache漏洞你补上了吗

摘要:memcache是一种实用key-value缓存系统,在缓存数据方面使用还是比较多,但是,它本身没有权限控制模块(不像redis有密码验证),开放在外网的memcache服务很容易被攻击者扫描发现,通过命令可以直接读取memcache数据。

memcache是一种实用key-value缓存系统,在缓存数据方面使用还是比较多,但是,它本身没有权限控制模块(不像redis有密码验证),开放在外网的memcache服务很容易被攻击者扫描发现,通过命令可以直接读取memcache数据。

我们可以使用telnet命令直接连接一个没有防护的memcached(假定以IP200.200.200.200为例)

telnet  200.200.200.200 11211

telnet 200.200.200.200  11211

Trying 200.200.200.200...

Connected to 200.200.200.200.

Escape character is '^]'.

stats

STAT pid 23710

STAT uptime 948

STAT time 1501241084

STAT version 1.4.25

STAT libevent 1.4.13-stable

STAT pointer_size 64

STAT rusage_user 0.014997

STAT rusage_system 0.013997

STAT curr_connections 5

STAT total_connections 7

STAT connection_structures 6

STAT reserved_fds 20

STAT cmd_get 0

STAT cmd_set 0

STAT cmd_flush 0

STAT cmd_touch 0

STAT get_hits 0

# stats  //查看memcache 服务状态

# stats items  //查看所有items

# stats cachedump 32 0  //获得缓存key

# get :state:264861539228401373:261588   //通过key读取相应value ,获得实际缓存内容,造成敏感信息泄露

很明显如果memcached这个漏洞不去补好,非法入侵者将会轻松的获取到你的缓存数据。

在这里提出两个方法:

1、如果memcache不需要开放在外网,可在memcached启动的时候指定ip地址为 127.0.0.1。例如:

memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 1024 -P

/tmp/memcached.pid

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

// accept

# iptables -A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT

# iptables -A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT

// drop

# iptables -I INPUT -p tcp --dport 11211 -j DROP

# iptables -I INPUT -p udp --dport 11211 -j DROP

// 保存规则并重启 iptables

# service iptables save

# service iptables restart

版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容