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. BZOJ 1632 [Usaco2007 Feb]Lilypad Pond:spfa【同时更新:经过边的数量最小】【路径数量】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1632 题意: 有一个n*m的池塘.0代表水,1代表荷花,2代表岩石,3代表起点,4代表终点 ...

  2. SSL协议、HTTP和HTTPS和区别

    SSL协议 SLL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake). 第一步,客户端给出协议版本号.一个客户端生成的随机数(Clien ...

  3. 跨域传输信息postMessage

    widnow.postMessage()方法允许安全的跨域传输. Syntax otherWindow.postMessage(message, targetOrigin, [transfer]); ...

  4. CodeForces960F:Pathwalks (主席树+DP)

    You are given a directed graph with n nodes and m edges, with all edges having a certain weight. The ...

  5. 激活层和pooling的作用

    激活层: 激活函数其中一个重要的作用是加入非线性因素的,将特征映射到高维的非线性区间进行解释,解决线性模型所不能解决的问题 pooling层: 1. invariance(不变性),这种不变性包括tr ...

  6. A - Toy Cars

    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description Little ...

  7. 20个Flutter实例视频教程-第12节: 流式布局 模拟添加照片效果

    视频地址: https://www.bilibili.com/video/av39709290/?p=12 博客地址: https://jspang.com/post/flutterDemo.html ...

  8. 11.ClientCredential模式总结

    11.ClientCredential模式总结 服务端定义的Resource叫做api Resource API默认是被保护的 第三方的客户端先去请求 Server拿到access token.带着t ...

  9. linux常用命令的全拼

    Linux常用命令英文全称与中文解释Linux系统   Linux常用命令英文全称与中文解释linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print ...

  10. C#实现简易ajax调用后台方法

    在当前WEB当中,有些人都会抛弃asp.net的服务器控件,转而使用ajax来进行数据的交互和存储. 当我们大量使用ajax的时候,对于新手而言,肯定会创建很多的ashx或aspx页面,通过拼接参数, ...