被人遗忘的Memcached内存注射

华盟原创文章投稿奖励计划

被人遗忘的Memcached内存注射

 

  0x00 写在前面

  wooyun主站也有过Memcached相关漏洞,但大多都是未授权访问,其实即使是部署得当的Memcached,如果碰上安全意识差的程序员哥哥,那么同样会出现Memcached安全风险,导致敏感内存泄露。

  也就是本文要说的Memcached注入

  0x01 Memcached简介&安全性分析

  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。

  它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

  用白话就是说,当传统web将访问产生的临时数据存储在后端数据库(如user sessions),部署了Memcached的应用会将user sessions以及其他一些敏感信息存储在RAM中,增速同时也减轻后端数据库反复查询带来的负载。

  Memcached创建者Dormando很早就写过两篇文章,告诫开发人员不要用memcached存储Session。但是很多开发者为了性能或者其他原因,依旧把session存储在memcached中。这样做,一旦memcached被攻击,直接将导致管理员或者是用户token泄露。

  0x02 Memcached协议

  当Memcache被部署之后,我们该如何向其中添加数据?我们通过一个cheat sheet了解一下Memcached的协议。

  Memcached的语法由如下元素组成

  {COMMAND}0x20{ARGUMENT}(LF|CRLF)

  command字段有如下几条命令:

  1.存储操作(set, add, replace, append, prepend, cas)

  2.检索操作 (get, gets)

  3.删除操作 (delete)

  4.增减操作 (incr, decr)

  5.touch

  6.slabs reassign

  7.slabs automove

  8.lru_crawler

  9.统计操作(stats items, slabs, cachedump)

  其他操作 (version, flush_all, quit)

  下面给出几个安全测试中有用的命令

被人遗忘的Memcached内存注射 

  stats cachedump 读取内存中存储的条目

  0x03 Memcached代码实现

  部署好Memcached之后,一个调用Memcached的php代码是这样的。

被人遗忘的Memcached内存注射

  可以看到,对Memcached的协议来讲,/r/n是可以用来分割命令的,所以说,我们能直接通过CLRF注入,将/r/n注入到将要传入Memcached的元素中(例如cookies),实现命令执行。

  0x04 Memcache Injection实例

  最近的一次ctf中,有一个典型的基于CLRF的Memcache注入。(目前该站可以访问)

  http://login2.chal.mmactf.link/login

  login as admin

  登录之后的请求是这样的

被人遗忘的Memcached内存注射

  恩,memcached出错了,那不就是刚刚提到的error吗?

  > 1234567890

  < ERROR

  说明这里ss的value代入了memcached。

  我们继续在cookies里面注入:ss=%0astats

  被人遗忘的Memcached内存注射

 

  果然返回了memcached的stats

  现在来做我们最想做的一件事情,dump内存中的东西看看:我们利用cachedump

  stats cachedump {slab class} {number of items to dump}

  这里需要介绍下 memcached是以slab class进行分类的 比如:

被人遗忘的Memcached内存注射

 

  终于注入到我们所需要的class中去。

  0x05 参考

  Memcache cheat sheet: http://lzone.de/cheat-sheet/memcached

  Memcached Injection: https://www.blackhat.com/docs/us-14/materials/us-14-Novikov-The-New-Page-Of-Injections-Book-Memcached-Injections-WP.pdf

原文地址:https://hack.77169.com/201509/212527.shtm

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/20642.html

发表评论