漏洞成因:
由于memcached安全设计缺陷,客户端连接memcached服务器后 无需认证就 可读取、修改服务器缓存内容。
漏洞影响:
除memcached中数据可被直接读取泄漏和恶意修改外,由于memcached中的数据像正常网站用户访问提交变量一样会被后端代码处理,当处理代码存在缺陷时会再次导致不同类型的安全问题。
不同的是,在处理 前端用户直接输入的数据时一般会接受更多的安全校验,而从memcached中读取的数据则更容易被开发者认为是可信的,或者是已经通过安全校验的,因此更容易导致安全问题。
由此可见,导致的二次安全漏洞类型一般 由memcached数据使用的位置(XSS通常称之为sink)的不同而不同, 如:
(1) 缓存数据未经过滤直接输出可导致XSS;
(2) 缓存数据 未经过滤代入拼接的SQL注入查询语句可导致SQL注入;
(3) 缓存数据 存储敏感信息(如:用户名、密码),可以通过读取操作直接泄漏;
(4) 缓存数据 未经过滤直接通过system()、eval()等函数处理可导致命令执行;
(5) 缓存数据 未经过滤直接在header()函数中输出,可导致CRLF漏洞(HTTP响应拆分)。
… …
漏洞检测:
1、登录机器执行netstat -an | more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached 未授权访问漏洞。
2、telnet IP 11211, 或 nc -vv 11211,提示连接成功表示漏洞存在(telnet连接成功后是一个黑框,执行Memcached命令stats)。
网友评论