从官方文档到0day挖掘思路
字数 1551 2025-08-15 21:32:28
XXL-JOB 漏洞挖掘与分析教学文档
1. 漏洞挖掘核心思想
核心原则:挖洞的本质就是信息收集
方法论:
- 从官方文档中挖掘有用信息(API利用、默认口令、硬编码等)
- 通过源码分析发现潜在漏洞
- 结合配置文件和实际功能验证漏洞
2. XXL-JOB 项目概述
2.1 项目功能
- 调度平台:分布式管理平台,设置定时任务并分配给执行器
- 主要功能:
- 执行脚本(支持Shell、Python、NodeJS、PHP、PowerShell等)
- 提供通用命令行任务Handler("CommandJobHandler")
2.2 项目组成
- 调度中心(xxl-job-admin):
- 统一管理任务调度
- 触发调度执行
- 提供任务管理平台
- 执行器(xxl-job-executor-sample-springboot):
- 接收调度中心的调度并执行
- 可直接部署或集成到现有项目中
3. 信息收集与分析
3.1 默认配置发现
- 默认凭证:admin/123456
- 鉴权配置:
xxl.job.accessToken=(默认空值,表示不启用鉴权)
3.2 API接口分析
调度中心API
- 任务回调:
/callback - 执行器注册:
/registry - 执行器注册摘除:
/registryRemove - 特点:依赖
XXL-JOB-ACCESS-TOKEN进行API鉴权
执行器API(关键漏洞点)
- 心跳检测:
/beat - 忙碌检测:
/idleBeat - 触发任务:
/run(关键漏洞接口) - 终止任务:
/kill - 查看执行日志:
/log
4. 漏洞发现与验证
4.1 未授权命令执行漏洞
-
漏洞位置:执行器的
/run接口 -
利用条件:
XXL-JOB-ACCESS-TOKEN未设置(默认空值)- 执行器可被外部访问
-
利用Payload:
{
"jobId":1,
"executorHandler":"demoJobHandler",
"executorParams":"demoJobHandler",
"executorBlockStrategy":"COVER_EARLY",
"executorTimeout":0,
"logId":1,
"logDateTime":1586629003729,
"glueType":"BEAN",
"glueSource":"xxx",
"glueUpdatetime":1586629003727,
"broadcastIndex":0,
"broadcastTotal":0
}
- 关键参数说明:
glueType:指定脚本类型(如"BEAN")glueSource:实际执行的命令或脚本glueUpdatetime:必须每次修改,否则会执行上次创建的任务
4.2 其他发现
-
固定Cookie问题:
- 默认Cookie(admin/123456)固定不变
- 可通过中间人攻击截获后长期使用
- 示例Cookie:
XXL_JOB_LOGIN_IDENTITY:7b226964223a312c22757365726e616d65223a2261646d696e222c2270617373776f7264223a226531306164633339343962613539616262653536653035376632306638383365222c22726f6c65223a312c227065726d697373696f6e223a6e756c6c7d
-
Token爆破可能性:
- 如果设置了
XXL-JOB-ACCESS-TOKEN,可通过爆破尝试 - 错误响应:
{"code":500,"msg":"The access token is wrong."} - 正确响应:
{"code":200}
- 如果设置了
5. 漏洞利用扩展
5.1 利用方式
- 直接访问执行器API执行命令
- 通过爆破弱Token绕过鉴权
- 利用固定Cookie进行持久化访问
5.2 实际利用示例
- 构造恶意请求直接执行系统命令
- 可上线Cobalt Strike等C2工具
6. 修复建议
6.1 临时修复方案
- 设置强
XXL-JOB-ACCESS-TOKEN字符串
6.2 彻底解决方案
- 将
XXL-JOB-ACCESS-TOKEN修改为每次启动随机生成 - 强制修改默认凭证
- 实现动态Cookie机制
- 增加API访问的二次验证
7. 总结与思考
7.1 漏洞挖掘经验
- 官方文档是重要信息来源
- 默认配置往往是安全隐患
- API接口需要严格鉴权
- 固定凭证类问题容易被忽视
7.2 防御思路
- 最小权限原则
- 动态鉴权机制
- 敏感操作审计
- 定期安全配置检查
附录:参考资源
- 官方文档:https://www.xuxueli.com/xxl-job/
- GitHub仓库:https://github.com/xuxueli/xxl-job
- Gitee仓库:http://gitee.com/xuxueli0323/xxl-job