1. 描述xxl-job执行器的默认accesstoken机制 XXL-JOB是一个分布式任务调度平台,分为调度中心和执行器两部分。在XXL-JOB中,accessToken用于调度中心与执行器之间的调度通讯认证。从XXL-JOB的2.3.1版本开始,accessToken在默认配置中设置了一个默认值(如default_token),而不是随机生成。这个默认值位于执行器和调度中心...
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...
CodeQL=Code Query Language 和SQL相似,分析引擎在分析完代码后会生成一个类似DB的文件夹Snapshot Database,里面的文件全是源代码和关系数据,接下来我们通过输入QL语句也就是queries规则可以查到XXL-JOB默认accessToken命令执行的漏洞点,然后对其进行分析。 xxl-job默认accessToken绕过原理 accessToken 本来是为了修复2020...
默认情况下是非空的,也就是xxl.job.accessToken=default_token,所以就是利用点在这里。不知道作者这么会给了个默认值,翻看之前的版本accessToken都为空,直到2.3.1后才出现默认值。 关于accessToken官方文档也给出了样例:https://www.xuxueli.com/xxl-job/#%E5%85%AD%E3%80%81%E8%B0%83%E5%BA%A6%E4%B8...
当然仅仅是没有修改默认accessToken并不能形成RCE的条件,远程访问需要host加port,默认是9999(或者自定义端口),所以如果存在默认accessToken加executor的执行端口对外开放,就形成了“洞”。 二、漏洞复现 1.启动xxl-job-admin 拉取项目代码,使用doc/db/tables_xxl_job.sql脚本创建表结构以及初始化数据。修改xxl-job-...
CodeQL=Code Query Language 和SQL相似,分析引擎在分析完代码后会生成一个类似DB的文件夹Snapshot Database,里面的文件全是源代码和关系数据,接下来我们通过输入QL语句也就是queries规则可以查到XXL-JOB默认accessToken命令执行的漏洞点,然后对其进行分析。
调度中心(默认端口 8080)就是 xxl-job-admin,而执行器(默认端口 9999)则就是所谓的 executor。执行器接收调度中心发出的命令,在所在机器上执行后并返回结果。而接收上级指令一定有一个身份验证来保证不被滥用,这个验证就是 accessToken。那么现在我们大致就理清漏洞的利用思路了,很简单就是构造一个调度中心的...
XXL-JOB 默认配置下,用于调度通讯的 accessToken 不是随机生成的,而是使用 application.properties 配置文件中的默认值。在实际使用中如果没有修改默认值,攻击者可利用此绕过认证调用 executor,执行任意代码,从而获取服务器权限。经分析和研判,该漏洞利用难度低,可导致远程代码执行。 漏洞复现 步骤一:在Fofa中搜索以下...
CodeQL=Code Query Language 和SQL相似,分析引擎在分析完代码后会生成一个类似DB的文件夹Snapshot Database,里面的文件全是源代码和关系数据,接下来我们通过输入QL语句也就是queries规则可以查到XXL-JOB默认accessToken命令执行的漏洞点,然后对其进行分析。 xxl-job默认accessToken绕过原理 accessToken 本来是为了修复2020...
前几日,运调中心的运维同事暴露出来一些已知BUG,其中一项是关于XXL-JOB调度工具的一些BUG。今天就关于AccessToken权限绕过漏洞做一些处理。XXL-JOB 是一款开源的分布式任务调度平台,用于实现大规模任务的调度和执行。XXL-JOB 在使用时使用了默认的AccessToken ,攻击者可使用 AccessToken 绕过认证权限,调用 executor,执行...