freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

redis未授权访问_任意文件写入漏洞(提权):
小呆呀 2023-02-24 15:48:19 213824
所属地 湖南省

0x01 redis是什么?

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)list(链表)set(集合)zset(sorted set --有序集合)hash(哈希类型)。这些数据类型都支持push/popadd/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。这些是百度上的说法。其实就可以把它理解是一种数据库就行了

0x02 漏洞利用条件:

1.Redis服务,采用的是默认端口。并且没用添加什么防火墙策略。比如说什么非信任来源IP地址访问之类的。

2.我们可以在公网上能访问的到这个服

3.没用设置密码认证,或者我们知道该数据库发密码,同时可以远程登录。

4.对方redis最好是root身份运行的不然可能后期有概率执行不成功

0x03漏洞复现:

1.首先我们得安装这个服务(在靶机Linux中),

2.wget http://download.redis.io/releases/redis-2.8.17.tar.gz

3.安装好之后解压tar -vxzf redis-2.8.17.tar.gz

4.make先编译,可能会报错。因为没有C的环境。如果没有那么装呗(yum install -y gcc -c++

5.cd /redis-2.8.17/src

6.make MALLOC=libc

7.查看这个下面文件是否有redis-server直接运行。

1677224957_63f86bfd012364d99f44a.png!small?1677224955552


8.运行服务

如果看到下面这个图案则表示这个服务成功启动了。

1677224971_63f86c0b039df18d7826e.png!small?1677224969647


9.如果有redis服务直接跳过之前的服务。不过最好是默认的配置方便实验嘛。如果不是,只要满足之前漏洞的条件就行了。

10.使用REDISDESKTOPMANAGER软件连接对方数据库redis(这里用Windows系统连接靶机的,靶机为Linux系统)

1677224985_63f86c191aaad023e24f8.png!small?1677224983519


11.连接redis数据库。

先测试与靶机是否网络连通:明显我们是连通的。

1677225001_63f86c2973fca459d043b.png!small?1677225000064


然后我们打开RESP这个软件,输入对方的地址。然后直接确定就好了。因为如果对方没用设置密码默认是没用密码的。然后出现下面的画面就表示连接成功了。然后我们可以打开终端了。点箭头指向的那个按钮就行了。

1677225019_63f86c3be3e311040ead1.png!small?1677225018475


12.然后我们使用命令设置web写入路径,设置写入文件名,然后设置写入代码,然后保存。

1677225032_63f86c48260eab70322f5.png!small?1677225030913


我们这里写入代码最好,设置写入代码设置为。

Set test"\r\n\r\n<?php eval($_REQUEST[pass]); ?>\r\n\r\n"

redis写入文件的会自带一些版本信息,所以可能会导致这个木马无法被执行。

13.查看是否真的写入redis数据库文件里面了。我们验证一下

1677225051_63f86c5bb3e87729e94f5.png!small?1677225050310


14.拿下webshell,如果我们知道网站的根目录

下面的截图是直接写入网站根目录下的。

1677225066_63f86c6a8aeae3910796a.png!small?1677225065555

我们可以从下面的图片看到,网站的根目录下我们是没用写权限的。但是我们通过数据库服务成功写入文件。

1677225078_63f86c765f412dff2ce42.png!small?1677225076830

15.测试木马连接成功getshell

成功从数据库权限,提权到网站权限了。

1677225087_63f86c7f6efc787f5d23e.png!small?1677225086369


# 网络安全 # web安全 # 漏洞复现
本文为 小呆呀 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
漏洞复现
小呆呀 LV.3
愿做网络的守护者
  • 6 文章数
  • 6 关注者
CSV注入漏洞
2023-04-18
phpmyadmin提权:
2023-03-21
upload-labs_通关tips
2023-03-19
文章目录