TA的每日心情 | 怒 2024-11-13 20:06 |
---|
签到天数: 1628 天 [LV.Master]伴坛终老
|
漏洞复现
看到发漏洞公告是 RESTful API 未授权,去官网搜了一下使用手册,总共有两种 RESTful API,一个 调度中心 RESTful API,一个 执行器 RESTful API。
测试了一下,发现问题出现在执行器 RESTful API。其中有个触发任务执行的说明:
- 说明:触发任务执行
-
- ------
-
- 地址格式:{执行器内嵌服务跟地址}/run
-
- Header:
- XXL-JOB-ACCESS-TOKEN : {请求令牌}
-
- 请求数据格式如下,放置在 RequestBody 中,JSON格式:
- {
- "jobId":1, // 任务ID
- "executorHandler":"demoJobHandler", // 任务标识
- "executorParams":"demoJobHandler", // 任务参数
- "executorBlockStrategy":"COVER_EARLY", // 任务阻塞策略,可选值参考 com.xxl.job.core.enums.ExecutorBlockStrategyEnum
- "executorTimeout":0, // 任务超时时间,单位秒,大于零时生效
- "logId":1, // 本次调度日志ID
- "logDateTime":1586629003729, // 本次调度日志时间
- "glueType":"BEAN", // 任务模式,可选值参考 com.xxl.job.core.glue.GlueTypeEnum
- "glueSource":"xxx", // GLUE脚本代码
- "glueUpdatetime":1586629003727, // GLUE脚本更新时间,用于判定脚本是否变更以及是否需要刷新
- "broadcastIndex":0, // 分片参数:当前分片
- "broadcastTotal":0 // 分片参数:总分片
- }
-
- 响应数据格式:
- {
- "code": 200, // 200 表示正常、其他失败
- "msg": null // 错误提示消息
复制代码
注意其中的任务模式 glueType,翻了下代码,有下面几种:
- BEAN("BEAN", false, null, null),
- GLUE_GROOVY("GLUE(Java)", false, null, null),
- GLUE_SHELL("GLUE(Shell)", true, "bash", ".sh"),
- GLUE_PYTHON("GLUE(Python)", true, "python", ".py"),
- GLUE_PHP("GLUE(PHP)", true, "php", ".php"),
- GLUE_NODEJS("GLUE(Nodejs)", true, "node", ".js"),
- GLUE_POWERSHELL("GLUE(PowerShell)", true, "powershell", ".ps1");
复制代码
用 GLUE_SHELL 构造一下请求包,直接在 glueSource 参数值写 bash 命令就可以了:
XXL-JOB官方文档 |
|