zoukankan      html  css  js  c++  java
  • Redis非授权访问获取webshell及相关问题

          最近,在乌云上看到有人利用Redis非授权访问获取webshell的案例。其实,之前在安全论坛上有看到相关的介绍文章。好吧,我也打算试用一把,在测试过程中把遇到的问题及解决办法记录一下。指不定有些朋友可以用的上,当然,仅作交流,请勿用于非法途径

          什么是Redis呢?我摘抄一段百度百科中的文字:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

          我主要在自己的kali虚拟机上测试,之前没有安装Redis相关的程序,第一步肯定是安装了。具体可以参考官网链接:http://redis.io/download。用SHODAN搜索了一下,找个案例实验一下。

          为了保护隐私,文章后续涉及到具体IP地址,我都会打上马赛克。

          如下图所示,我找到了一个非授权访问的Redis数据库。具体就是使用redis-cli命令来进行连接。

    38

          连上之后,我们看下数据库中的key值。具体命令如下:

    keys *

          得到如下图所示结果:

    39

          可以看到,有2167项内容。咱们开始获取webshell的过程。在这里,我们需要知道web服务器的解析路径。这个可以猜测或者比较幸运的是主站正好有类似phpinfo这样的网页可以访问。在这里我找到一个info.php的页面,正好得到网站路径的绝对地址。

          执行webshell的几条命令如下:(我得到的网站路径的绝对地址为/data/www/ecstore/)

    config set dir /data/www/ecstore/
    
    config set dbfilename chopper.php
    
    set webshell "<?php phpinfo(); ?>" 
    
    save

          命令执行完成之后,一般情况下就可以访问webshell了,也不排除特殊情况,如下图所示:

    41

          这个是什么问题呢?我后续写入了一个test.txt的文件,然后下载发现,Redis数据库执行save后会把内存中存在的所有数据都会保存到磁盘,这样就导致想要保存的webshell文件过大,然后不能执行了。那么,有什么好办法解决?可以先把Redis数据库中的内容全部清除,再写入webshell。这样就可以成功了。注意一点,还是首先备份一下Redis数据库中的内容,然后写入webshell成功后,再次恢复Redis数据库中的内容。本着不破坏的原则,应该是要这么做的。

          在这里推荐备份和恢复Redis数据库的工具redis-dump,具体可以参看GitHub上的地址:https://github.com/delano/redis-dump

          首先来个备份,保存的是json格式。如下图所示:

    40

          接下来清空Redis数据库,然后执行webshell写入过程。清空Redis数据库的命令如下:

    FLUSHALL

          最后,再次恢复Redis数据库中的内容:

    42

          这次,得到的webshell就可以执行了。最后需要注意的地方,webshell上传成功且可以执行之后,如果恢复Redis数据库,你会发现之前能够成功执行的webshell又不能执行了。貌似恢复的Redis数据库中的内容会覆盖webshell中的内容。所以,先上传个小马,然后再用小马上传个大马,这样小马不行了,还可以用大马。

          参考链接:

          http://www.secpulse.com/archives/5357.html

          http://www.secpulse.com/archives/5366.html

     

  • 相关阅读:
    数据倾斜原理及解决方案
    删除emp_no重复的记录,只保留最小的id对应的记录
    理解HBase面向列存储
    给数据库用户授权(对象多为系统表,如dba可以查看的表)
    SpringBoot里的一些注解
    01背包
    【转】简说GNU, GCC and MinGW (Lu Hongling)
    费马小定理
    欧拉定理
    【转】C中的静态存储区和动态存储区
  • 原文地址:https://www.cnblogs.com/hiccup/p/5423988.html
Copyright © 2011-2022 走看看