celery漏洞复现

简介

不另作说明漏洞环境均为vulhub。

参考链接:

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery。(来自知乎)

Celery <4.0 Redis未授权访问+Pickle反序列化利用

参考链接:

在Celery < 4.0版本默认使用Pickle进行任务消息的序列化传递,当所用队列服务(比如Redis、RabbitMQ、RocketMQ等等等)存在未授权访问问题时,可利用Pickle反序列化漏洞执行任意代码。

漏洞复现

启动环境,在vulhub中的版本为Celery 3.1.23 + Redis。

在漏洞环境目录中,存在exploit.py文件,该文件是漏洞的利用脚本,仅支持在python3环境下使用。在使用过程中有可能会遇到缺少python模块的情况,缺少哪个使用pip安装即可。

python3 exploit.py [主机IP]

执行完成后,通过docker-compose logs celery命令查看日志信息,可以看到如下信息报错:

然后通过docker-compose exec celery ls -l /tmp命令,在celery服务中运行ls -l /tmp,可以看到已成功创建celery_success

这个漏洞的利用还是与其他漏洞有些区别的,执行其他命令得修改exploit.py脚本。

漏洞修复

emm,升级版本?现在已经是5.2了(21年10月18日);或者将未授权访问问题修复。

本博客虽然很垃圾,但所有内容严禁转载
原文地址:https://www.cnblogs.com/ahtoh/p/15420853.html