以下是对 xxl-job 已知漏洞的搜集、成因分析、修复方案及预防未来漏洞的建议。 搜集xxl-job已知漏洞信息 1. 默认密钥漏洞 描述:在xxl-job的某些版本中,accessToken的默认值是default_token,这个值在配置文件中是硬编码的。如果管理员没有修改这个默认值,攻击者可以使用这个默认的accessToken来伪装成调度中心,执行任意...
未设置AccessToken参数时(使用默认值),请求结果如下(为了方便演示,端口已经设置其他端口): 设置AccessToken参数,不使用默认值时,请求结果如下: 注意⚠️ 在本篇以前,官方已修复该漏洞,且建议用户修改调度中心和执行器配置项 accessToken 的默认值,防止漏洞利用者利用这个漏洞。所以只需要按照要求修改即可避免漏洞被...
XXL-JOB默认accessToken绕过的原理就是配置没有做随机化生成处理。所有使用该XXL-JOB项目的默认值都是default_token,这导致了在默认配置下使用该token可以绕过授权认证功能。 CodeQL默认的规则应该检测不出该类型的漏洞的,通过自定义CodeQL规则也不能完全准确的检测出该类型的问题,只是能检测出大致的范围,其漏洞还是需要...
accessToken的默认值是default_token,在调度中心的配置文件是xxl-job-admin/src/main/resources/application.properties,配置项是xxl.job.accessToken=default_token。 在执行器的配置文件是xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties,配置项是xxl.job.accessTo...
起因: 昨天看见微步发布XXL-JOB默认accessToken身份绕过漏洞,之前hw期间遇到过几次,都没弱口令和未授权,对其有点印象,遂复现一下。 漏洞影响:2.3.1和2.4 环境准备: 1、下载即可:https://github.com/xuxueli/xxl-job/releases/tag
而接收上级指令一定有一个身份验证来保证不被滥用,这个验证就是 accessToken。那么现在我们大致就理清漏洞的利用思路了,很简单就是构造一个调度中心的指令请求给执行器,当 accessToken 为默认时我们就可以冒用身份把执行器作为我们的木马去使用。那这个请求的格式是什么样的呢?最开始我从代码层面可是跟踪,但往深处...
CodeQL=Code Query Language 和SQL相似,分析引擎在分析完代码后会生成一个类似DB的文件夹Snapshot Database,里面的文件全是源代码和关系数据,接下来我们通过输入QL语句也就是queries规则可以查到XXL-JOB默认accessToken命令执行的漏洞点,然后对其进行分析。
XXL-JOB 默认配置下,用于调度通讯的 accessToken 不是随机生成的,而是使用 application.properties 配置文件中的默认值。在实际使用中如果没有修改默认值,攻击者可利用此绕过认证调用 executor,执行任意代码,从而获取服务器权限。经分析和研判,该漏洞利用难度低,可导致远程代码执行。 漏洞复现 步骤一:在Fofa中搜索以下...
漏洞代码逻辑如下,判断该处校验accessToken传入的accessTokenReq和配置文件中的xxl.job.accessToken=default_token是否一致,如果不一致,则返回FAIL_CODE。 如果通过了accessToken验证,则按照url中指定的路由执行对应逻辑, 跟进配置文件读取函数, 跟进该函数构造方法,使用了loder.getResourceAsStream(propertyFileName)函数读取...
xxl.job.accessToken=default_token 这里为了复现默认accessToken漏洞,不做修改,使用默认的即可。 然后到xxl-job-admin模块下打包: 代码语言:javascript 复制 mvn-Ucleanpackage-Dmaven.test.skip 把jar包上传到服务器启动即可。 其实这个漏洞主要存在于xxl-job-executor中,控制台不部署都可以。