CVE-2022-33891漏洞原理、环境搭建和复现

CVE-2022-33891漏洞原理、环境搭建和复现

前言

最近有幸参与了某地市的攻防演练,在扫描器漏洞都被提交了之后,大杀器也逐渐开始浮出水面,其中就包含今天的主角:apache spark的rce。

简介

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。spark除了能够提供交互式查询外,它还可以优化迭代工作负载。

漏洞成因

该漏洞是由于Apache Spark UI提供了通过配置选项spark.acls.enable启用ACL的可能性,HttpSecurityFilter中的代码路径可以通过提供任意用户名来允许某人执行模拟。恶意用户凭借访问权限检查函数最终将基于其输入构建Unix shell命令并执行它。成功利用此漏洞可导致任意shell命令执行。

利用方法

抓取数据包后,在请求后拼接/(任意目录,可为空)/?doAs=`touch /123.txt即可在目标机器主目录下创建123.txt,也可在url后直接拼接命令。也可通过dnslog去验证目标是否存在该漏洞。

环境搭建

为了追求效率,这里推荐使用docker镜像去直接搭建漏洞环境,链接如下:
spark镜像

漏洞复现

  1. 环境搭建好后,访问本地电脑的ip:8080,得到如下页面:
    在这里插入图片描述
  2. 在URL后拼接如下内容:
    /?doAs=`touch /tmp/123456.txt`,回车
    在这里插入图片描述

进入docker查看
在这里插入图片描述
可看到该目录已创建成功。
而此处也可利用dnslog回显来确定是否存在该漏洞,
由于我这边用的是docker镜像,ping无法执行,所以采用了curl的方式
在这里插入图片描述
结果如下:
在这里插入图片描述
当然也可以反弹shell
经测试本镜像只有python环境,故利用pythonfantanshell,利用nc/msf监听以获取会话

由于之前执行了dnslog回显,所以此处页面为dnslog回显的报错页面,会话是持久的,所以此处会一直加载页面
结果如下:
在这里插入图片描述
由于时间关系,复现只演示到这里,还请大佬们多多指教。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值