memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。

漏洞成因:

由于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  <target>  11211, 或 nc -vv  <target>  11211,提示连接成功表示漏洞存在。

TELNET:
 
        ------------------------------------------------------------
 
        local% telnet x.x.x.x 11211
 
        Trying x.x.x.x...
 
        Connectedto x.x.x.x.
 
        Escapecharacteris '^]'.
 
        
 
        NC:
 
        ------------------------------------------------------------
 
        local% nc -vv x.x.x.x 11211
 
        found 0 associations
 
        found 1 connections:
 
            1: flags=82<CONNECTED,PREFERRED>
 
        outifen7
 
        src x.x.x.x port 55001
 
        dst x.x.x.x port 11211
 
        rankinfonot available
 
        TCPauxinfoavailable
 
        
 
        Connectionto x.x.x.x port 11211 [tcp/*] succeeded!
 
        statsitems
 
        memcachedagentv0.4
 
        matrix 1 -> x.x.x.x:12000, poolsize 1
 
        matrix 2 -> x.x.x.x:12001, poolsize 1
 
        END
3、使用端口扫描工具nmap进行远程扫描:nmap -sV -p 11211 –script memcached-info <target>。

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 #重启服务 (可能会提示11211端口被占用,这时候需要kill对应11211占用的Pid)
2、当memcached 配置为监听内网IP或公网IP时, 使用主机防火墙(iptalbes、 firewalld等)和 网络防火墙对memcached服务端口 进行过滤。

Memcached 未授权访问漏洞及加固的更多相关文章

  1. MongoDB数据库未授权访问漏洞及加固

    1.漏洞危害 开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库. 2.漏洞成因 在刚安装完毕的 ...

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

    Memcached是一套分布式的高速缓存系统.它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的.正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问.本文 ...

  3. mongodb未授权访问漏洞

    catalogue . mongodb安装 . 未授权访问漏洞 . 漏洞修复及加固 . 自动化检测点 1. mongodb安装 apt-get install mongodb 0x1: 创建数据库目录 ...

  4. Memcached未授权访问

    概念 memcached是一个内存中的键值存储区,用于存储来自数据库调用.API调用或页面呈现结果的任意小数据块(字符串.对象).memcached简单但功能强大.其简单的设计促进了快速部署.易于开发 ...

  5. [Shell]Docker remote api未授权访问漏洞(Port=2375)

    0x01 简介 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. Docke ...

  6. UCloud-201809-001:Redis服务未授权访问漏洞安全预警

    UCloud-201809-001:Redis服务未授权访问漏洞安全预警 尊敬的UCloud用户,您好! 发布时间  2018-09-11更新时间  2018-09-11漏洞等级  HighCVE编号 ...

  7. Redis 未授权访问漏洞【原理扫描】修复方法

    漏洞类型 主机漏洞 漏洞名称/检查项 Redis 配置不当可直接导致服务器被控制[原理扫描] 漏洞名称/检查项 Redis 未授权访问漏洞[原理扫描] 加固建议 防止这个漏洞需要修复以下三处问题 第一 ...

  8. 真实本人亲测Elasticsearch未授权访问漏洞——利用及修复【踩坑指南到脱坑!】

    如要转载请注明出处谢谢: https://www.cnblogs.com/vitalemontea/p/16105490.html 1.前言 某天"发现"了个漏洞,咳咳,原本以为这 ...

  9. [ Redis ] Redis 未授权访问漏洞被利用,服务器登陆不上

    一.缘由: 突然有一天某台服务器远程登陆不上,试了好几个人的账号都行,顿时慌了,感觉服务器被黑.在终于找到一个还在登陆状态的同事后,经查看/ect/passwd 和/etc/passwd-异常,文件中 ...

随机推荐

  1. 生成chm格式帮助文档的步骤

    开场前,道具先得被齐全了. 道具:struts2的开源代码(以生成struts2的帮助文档为例).chm格式生成工具jd2chm.exe(网上有) 好了,准备演出 1.在eclipse中新建一个jav ...

  2. Floyd算法(弗洛伊德算法) 百度百科

    核心代码 for(int k=1; k<=NODE; ++k)//对于每一个中转点 for(int i=0; i<=NODE; ++i)//枚举源点 for(int j=0; j<= ...

  3. (转)vim 访问系统剪贴板

    原文出处:http://vim.wikia.com/wiki/Accessing_the_system_clipboard Please review this tip: This tip was i ...

  4. IO多路复用模型之epoll实现机制

    设想一下如下场景:有100万个客户端同时与一个服务器进程保持着TCP连接.而每一时刻,通常只有几百上千个TCP连接是活跃的(事实上大部分场景都是这种情况).如何实现这样的高并发? 在select/po ...

  5. JAVA基础--JAVA API集合框架16

    一.Map集合 1. map集合介绍 Collection集合的特点: 集合中存储的所有元素都是单一元素,元素和元素之间没有必然的关系.因此我们把Collection集合也称为单列集合. Map集合: ...

  6. Golang : flag 包简介

    在 Golang 程序中有很多种方法来处理命令行参数.简单的情况下可以不使用任何库,直接处理 os.Args:其实 Golang 的标准库提供了 flag 包来处理命令行参数:还有第三方提供的处理命令 ...

  7. 洛谷 - P2051 - 中国象棋 - 简单dp

    https://www.luogu.org/problemnew/show/P2051 一点都不简单的简单dp. 还是从旧行转移到新行,而不是考虑新行从哪些旧行转移吧. #include<bit ...

  8. 洛谷 - UVA11424 - GCD - Extreme (I) - 莫比乌斯反演 - 整除分块

    https://www.luogu.org/problemnew/show/UVA11424 原本以为是一道四倍经验题来的. 因为输入的n很多导致像之前那样 \(O(n)\) 计算变得非常荒谬. 那么 ...

  9. C++里的强制类型转换符reinterpret_cast、static_cast 、dynamic_cast、const_cast 区别

    C 风格(C-style)强制转型如下: (T) exdivssion // cast exdivssion to be of type T 函数风格(Function-style)强制转型使用这样的 ...

  10. IT行业技术及程序员相关网站荟萃

    最近我花了一些时间收集了一些与自己工作相关的常用的网址,由于时间关系,暂时只是收集了这么多,以后有时间再随时添加. 1.程序员网址导航pg265 http://www.pg265.com/TNT程序网 ...