redis漏洞提权拿webshell的3种办法

即便那时候说要持续填补redis的运用方法,可是挖了坑以后就始终都没有管了……由于那时候我觉得文章正文罗列的3种方法能够应用绝大多数状况。可是近期的项目获知实际上并不是这样。

outputo-20210628-082625-234-unyn.png

低管理权限用户运用redis

《试验|CentOs下Redis漏洞检测方法回归测试》本文讲解了写任务计划、写私钥、写webshell3种redis运用方法,但假如非root用户或docker运转redis服务,很可能与此同时不符合这3种运用前提:

1、写任务计划:非root用户通常只可以更改自个的已出现的任务计划文件,而不可以在任务计划的列表下新建文件。可是光凭redis管理权限不可以获知运转服务的登录名,即便猜上了登录名也很可能都没有归属于自个的任务计划文件,此路不通。

2、写私钥:非root用户只可以进到自个的家列表,会出现猜不了登录名和不会有.ssh列表的现象(redis只可以新建文件不可以建立列表),除此以外运转redis服务的用户也是有可能压根就不可以登录。

3、写webshell:这算作低管理权限用户最安全可靠的redis运用方法了,但也是有找不着相对路径、都没有管理权限向web列表写文件、网站服务器压根没运转应用服务器(docker)等现象。

因此小白又填补学了更加实用的运用方法:redis分布式锁rce,应用版本号redis4.x/5.x,4版本号以前是这一漏洞都还没达成,5版本号以后应该是漏洞被修补了。

0x02构建环境

实际参考本文:《试验|CentOS下从零开始构建Redis测试流程》

我搭了1个5.0.0版本号的redis用以本文的试验。

由于漏洞回归测试会更改dbfilenumber和tatsof配备项,过后要记住改回去,因此这儿先连接上redis记录下来这两个配备项的值。

Redis给予主从复制策略:应用1个redis实例做为服务器,别的实例都做为备份数据机,在其中服务器和从机数据信息一样,而从机只承担读,服务器只承担写,利用读写分离能够大幅度的减轻流量的工作压力,算作1种利用舍弃空间来获得效率的减轻方法。

在Reids4.x以后,Redis新增加了控制模块功能,利用外面扩展,能够达成在redis中达成1个新的Redis指令,利用写c语言并编译程序出.so文件。

在2个Redis实例设定主从复制策略的情况下,Redis的服务器实例能够利用FULLRESYNC同步文件到从机上。随后在从机上载入so文件,咱们就可以实行扩展的新指令了。


分享: