Memcache未授权访问漏洞利用及修复
Memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。本文和大家分享的是Memcache中未授权访问漏洞利用及修复相关知识,希望对大家学习Memcache有所帮助。
漏洞成因:
由于memcached安全设计缺陷,客户端连接memcached服务器后 无需认证就 可读取、修改服务器缓存内容。
漏洞影响:
除memcached中数据可被直接读取泄漏和恶意修改外,由于memcached中的数据像正常网站用户访问提交变量一样会被后端代码处理,当处理代码存在缺陷时会再次导致不同类型的安全问题。
不同的是,在处理 前端用户直接输入的数据时一般会接受更多的安全校验,而从memcached中读取的数据则更容易被开发者认为是可信的,或者是已经通过安全校验的,因此更容易导致安全问题。
由此可见,导致的二次安全漏洞类型一般 由memcached数据使用的位置(XSS通常称之为sink)的不同而不同, 如:
(1)缓存数据未经过滤直接输出可导致XSS;
(2) 缓存数据 未经过滤代入拼接的SQL注入查询语句可导致SQL注入;
(3) 缓存数据 存储敏感信息(如:用户名、密码),可以通过读取操作直接泄漏;
(4) 缓存数据 未经过滤直接通过system()、eval()等函数处理可导致命令执行;
(5) 缓存数据 未经过滤直接在header()函数中输出,可导致CRLF漏洞(HTTP响应拆分)。
… …
漏洞利用:
漏洞的利用根据所造成二次漏洞的不同,可在缓存变量中构造相应的payload。
针对memcached未授权访问漏洞缓存数据的抓取,可使用 go-derper工具。
注: memcached服务器基本操作及go-derper工具使用方法参见链接。
漏洞攻击DEMO:
http://niiconsulting.com/checkmate/2013/05/memcache-exploit/
漏洞检测:
1、登录机器执行netstat -an | more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached 未授权访问漏洞。
2、telnet IP 11211, 或 nc -vv11211,提示连接成功表示漏洞存在(telnet连接成功后是一个黑框,执行Memcached命令stats)。

memcache stats命令详解
| 参数 | 值 | 描述 |
|---|---|---|
| pid | 7862 | memcache服务器进程ID |
| uptime | 12617972 | 服务器已运行秒数 |
| time | 1320756409 | 服务器当前Unix时间戳 |
| version | 1.4.5 | memcache版本 |
| pointer_size | 64 | 操作系统指针大小 |
| rusage_user | 1.731736 | 进程累计用户时间 |
| rusage_system | 251.421778 | 进程累计系统时间 |
| curr_connections | 41 | 当前连接数量 |
| total_connections | 848 | Memcached运行以来连接总数 |
| connection_structures | 46 | Memcached分配的连接结构数量 |
| cmd_get | 164377 | get命令请求次数 |
| cmd_set | 58617 | set命令请求次数 |
| cmd_flush | 0 | flush命令请求次数 |
| get_hits | 105598 | get命令命中次数 |
| get_misses | 58779 | get命令未命中次数 |
| delete_misses | 0 | delete命令未命中次数 |
| delete_hits | 0 | delete命令命中次数 |
| incr_misses | 0 | incr命令未命中次数 |
| incr_hits | 0 | incr命令命中次数 |
| decr_misses | 0 | decr命令未命中次数 |
| decr_hits | 0 | decr命令命中次数 |
| cas_misses | 0 | cas命令未命中次数 |
| cas_hits | 0 | cas命令命中次数 |
| cas_badval | 0 | 使用擦拭次数 |
| auth_cmds | 0 | 认证命令处理的次数 |
| auth_errors | 0 | 认证失败数目 |
| bytes_read | 262113283 | 读取总字节数 |
| bytes_written | 460023263 | 发送总字节数 |
| limit_maxbytes | 536870912 | 分配的内存总大小(字节) |
| accepting_conns | 1 | 服务器是否达到过最大连接(0/1) |
| listen_disabled_num | 0 | 失效的监听数 |
| threads | 4 | 当前线程数 |
| conn_yields | 0 | 连接操作主动放弃数目 |
| bytes | 1941693 | 当前存储占用的字节数 |
| curr_items | 476 | 当前存储的数据总数 |
| total_items | 58617 | 启动以来存储的数据总数 |
| evictions | 0 | LRU释放的对象数目 |
| reclaimed | 48830 | 已过期的数据条目来存储新数据的数目 |
3、使用端口扫描工具nmap进行远程扫描:nmap -sV -p 11211 --script=memcached-info IP。
11211/tcpopen memcached
| memcached-info:
| ProcessID 18568
| Uptime 6950 seconds
| Servertime SatDec 31 14:16:10 2011
| Architecture 64 bit
| UsedCPU (user) 0.172010
| UsedCPU (system) 0.200012
| Currentconnections 10
| Totalconnections 78
| Maximumconnections 1024
| TCPPort 11211
| UDPPort 11211
|_ Authentication no

漏洞修复:
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、当memcached 配置为监听内网IP或公网IP时, 使用主机防火墙(iptalbes、 firewalld等)和 网络防火墙对memcached服务端口 进行过滤。
参考:
http://blog.nsfocus.net/
http://blog.csdn.net/qq_32506555/article/details/53581809
http://gdd.gd/1072.html
https://www.cnblogs.com/Alight/p/3546400.html
Memcache未授权访问漏洞利用及修复的更多相关文章
- 真实本人亲测Elasticsearch未授权访问漏洞——利用及修复【踩坑指南到脱坑!】
如要转载请注明出处谢谢: https://www.cnblogs.com/vitalemontea/p/16105490.html 1.前言 某天"发现"了个漏洞,咳咳,原本以为这 ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- Memcache未授权访问漏洞
Memcached 分布式缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露. 0X00 Memcache安装 1. 下载Mencache的 ...
- ZooKeeper未授权访问漏洞确认与修复
目录 探测2181 探测四字命令 用安装好zk环境的客户端连接测试 修复 修复步骤一 关闭四字命令 修复步骤二 关闭未授权访问 zookeeper未授权访问测试参考文章: https://www.cn ...
- rsync未授权访问漏洞利用
漏洞描述:rsync是Linux系统下的数据镜像备份工具,使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他ssh,rsync主机同步.也就是说如果你可以连接目标IP的r ...
- JBOSS未授权访问漏洞利用
1. 环境搭建 https://www.cnblogs.com/chengNo1/p/14297387.html 搭建好vulhub平台后 进入对应漏洞目录 cd vulhub/jboss/CVE-2 ...
- Memcache未授权访问漏洞简单修复方法
漏洞描述: memcache是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏 ...
- memcache 未授权访问漏洞
memcache是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息. 修 ...
- [日常] 研究redis未授权访问漏洞利用过程
前提:redis允许远程连接,不需要密码 1522057495.583846 [0 123.206.24.121:50084] "set" "dUHkp" &q ...
随机推荐
- 分享知识-快乐自己:Struts2中 获取 Request和Session
目录结构: POM: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEnco ...
- ZOJ 3805 Machine(二叉树,递归)
题意:一颗二叉树,求 “ 宽度 ” 思路:递归,貌似这个思路是对的,先记下,但是提交时超时, 1.如果当前节点只有左孩子,那么当前宽度等于左孩子宽度 2.如果当前节点只有右孩子,那么当前宽度等于 ...
- L88
Where You Vote May Affect How You Vote On election day, where do you vote? If it's in a church, you ...
- physoft.net网站暂停 www.physoft.cn 正式开通 (菲烁科技, physoft)
physoft.net原本计划以开源代码为主体,由于各种原因代码未能开源.基于这些代码,physoft成立了 菲烁(重庆)科技有限公司 ( www.physoft.cn) ,专注于工业级双目视觉测量, ...
- [转]提高 web 应用性能之 CSS 性能调优
简介 Web 开发中经常会遇到性能的问题,尤其是 Web 2.0 的应用.CSS 代码是控制页面显示样式与效果的最直接“工具”,但是在性能调优时他们通常被 Web 开发工程师所忽略,而事实上不规范的 ...
- Elasticsearch官方安装
Installationedit Elasticsearch requires at least Java 8. Specifically as of this writing, it is reco ...
- JS---分解质因数
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Apress 出版社电子书
http://www.apress.com/ 国外收费电子书网站,电子书权威,比国内的还便宜
- ie8兼容rgba的方法
现在做个网页还得考虑ie8,只想说:尼玛! 但是没办法,屈于淫威也得弄. 首先说下rgba的含义吧,rgba,r代表red,g代表green,b代表blue,a代表透明度. filter:progid ...
- [hdu3530]Subsequence (单调队列)
题意:求在一段序列中满足m<=max-min<=k的最大长度. 解题关键:单调队列+dp,维护前缀序列的最大最小值,一旦大于k,则移动左端点,取max即可. #include<cst ...