【漏洞重现】XXL-JOB API插口未受权浏览RCE
承影安全性是齐安高新科技集团旗下安全性科学研究精英团队专业承担的一个服务平台,致力于安全类防御科学研究,会经常性輸出一些有关的技术专业文章内容,热烈欢迎大伙儿定阅!
XXL-JOB是一个轻量分布式系统每日任务调度服务平台,其关键设计方案总体目标是开发设计快速、学习培训简易、轻量、易拓展。已经对外开放源码并连接好几家企业网上产品系列,拆箱即用。
官方网文本文档:
本次漏洞关键难题是 GLUE 方式。XXL-JOB 根据“GLUE方式”适用多语言表达及其脚本制作每日任务,该方式每日任务特性以下:
● 多语言表达适用:适用 Java、Shell、Python、NodeJS、PHP、PowerShell……等种类。
● Web IDE:每日任务以源代码方法维护保养在调度中心,适用根据 Web IDE 线上开发设计、维护保养。
● 动态性起效:客户线上根据 Web IDE 开发设计的每日任务编码,远程控制消息推送至执行器,即时载入实行。
如圖所显示,假如在 GLUE 方式每日任务编码中载入进攻编码,消息推送到执行器实行就可以导致远程控制进攻。
【漏洞叙述】
XXL-JOB的Restful API插口或RPC插口沒有配置验证对策,未受权的网络攻击可结构故意要求,导致远程控制运行命令
【漏洞定级】
高风险
【受影响版本】
XXL-JOB <=2.2.0
2. 自然环境构建
总体构思:源代码下载->Maven安裝依靠->配置布署“调度中心”->配置布署“执行器新项目”->进行布署
当地开发工具:Java8 Maven3.6
1. Github免费下载源码
详细地址:
2. Maven免费下载所必须的依靠
Idea开启缓解压力后的源码,全自动会开展pom中的有关依靠安裝,还可以在终端设备应用maven指令免费下载所必须的依靠
3. 数据库查询配置
调度数据库查询复位SQL脚本制作部位为:
/xxl-job/doc/db/tables_xxl_job.sql
由于当地未安裝mysql,故应用docker安裝。
a) docker pull mysql:5.7
b) sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
那样大家就运行了mysql器皿,账户为root,登陆密码为123456
应用navicat连续数据库查询
能够点一下左下方,进行检测联接。在导进的数据库查询鼠标右键,挑选运作SQL文档,点一下逐渐就可以进行数据库查询的导进。
4. 配置布署“调度中心”
调度中心新项目:xxl-job-admin
功效:统一管理方法每日任务调度服务平台上调度每日任务,承担开启调度实行,而且出示每日任务管理系统。可依据具体情况自主改动application.properties中的数据库查询配置
实行XxlJobAdminApplication运行调度中心
5. 配置布署“执行器新项目”
大家应用强烈推荐的Springboot来管理方法执行器
查询配置文档,发觉xxl.job.executor.logpath主要参数,我们可以新创建或改动该途径,以避免程序运行发生难题。Mac新系统不会有data途径,发觉应用mkdir建立途径发觉不成功,这是由于mac系统中关掉了Sip,应用sudo mount -uw /来消除Sip的限定。运作XxlJobExecutorApplication来运行执行器。打开浏览器//localhost:8080/,见到登陆页面,保证运行取得成功,默认设置账号登录“admin/123456”
留意点:
提议先建立/data/applogs/xxl-job,程序流程中好几处配置文档应用该途径
改动调度中心数据库查询配置
Linux/Unix可应用lsof来查询端口占用状况,避免运行不成功
调度中心和执行器能够依据具体情况分离布署
查询官方网文本文档能够见到执行器RESTful API中开启每日任务插口表明
在其中的每日任务运行模式有下列几类
查询GulueTypeEnum源码
因此 大家运用Burpsuite结构大家的POC
Tips:
改动glueSource时,假如实行未起效,请改动jobId
当重新启动新项目时,发觉端口号运行出现异常,请关掉BurpSuite
因为 XXL-JOB 官方网版本原生态内置身份验证部件,打开后可保障体系最底层通信安全性。XXL-JOB 创作者表明一切正常状况下调度中心与执行器最底层通信是安全性的,不会有远程连接命令漏洞。但假如执行器未打开浏览动态口令,会造成 无法识别并阻拦不法的调度要求。故意要求方能够依靠 GLUE 方式,消息推送故意进攻编码完成远程控制进攻。因而,XXL-JOB 创作者觉得该难题实质上不属于 “漏洞”,官方网站版本出示了身份验证部件,打开就可以开展安全防护。
1. 打开 XXL-JOB 内置的身份验证部件:官方网文本文档中检索 “xxl.job.accessToken”,依照文本文档表明开启就可以。
2. 端口号访问权限:根据配置安全性组限定只容许特定IP才可以浏览端口号
2020年CNVD漏洞数据信息状况选编
鸿鹄蓝海 千万里同飞 | 齐安工业生产安全风险评估系统软件获“华为鲲鹏技术性认证标志”!
11月安全事故月度工作总结
齐安高新科技喜获第六届浙大同学创新创业大赛数字贸易盛典总冠军!
喜报!齐安高新科技荣获2020我国IT服务自主创新技术规范Top100