Open lyfxinsui opened 10 months ago
怎么破?xxl.job.accessToken=default_token 我现在用的这个配置直接可以绕过发送请求,导致服务器全部都是木马程序。
怎么破?xxl.job.accessToken=default_token 我现在用的这个配置直接可以绕过发送请求,导致服务器全部都是木马程序。
我们先隔离到内网了 端口对对外不在开放,把代码给下载下来改了重写打包替换进去,强制校验吧没有就不让过
我是一个华为云和一个阿里云,都隔离不到内网去。如何做强制校验?xxl.job.accessToken=这里任意配置字符串吗?
我是一个华为云和一个阿里云,都隔离不到内网去。如何做强制校验?xxl.job.accessToken=这里任意配置字符串吗? 你肯定首先的把 xxl.job.accessToken改了不要使用默认的,这个很容易猜到,另外改了也不行 就是因为他这个地方存在问题,你定时任务依赖这个core包的 如果对外网开放都会有问题,他可以不传token直接绕过,执行后面代码,把脚本给注入进你的服务器 。只能把代码下下来改了编译打包替换进去把,就是没token,token为空的时候也拦截 不让执行
填空怎么填呢?空串么那第三个值不相等了吧
我在本地测试 xxljob 调度中心设置accessToken ,执行器没有设置 accessToken 可以注册和执行任务,但是如果执行器设置了与调度中心不一样的 accessToken 就不会执行 和你说的是一个问题吧
我在本地测试 xxljob 调度中心设置accessToken ,执行器没有设置 accessToken 可以注册和执行任务,但是如果执行器设置了与调度中心不一样的 accessToken 就不会执行 和你说的是一个问题吧
不是,我是说的他这个有漏洞,依赖xxx-core的客服端在启动的时候需要启动httpserver,也就是EmbedServer这个类,与管理端进行通信,我的意思是如果别人拿到这个请求路径 /run 后面跟上一个可执行脚本内容,同时accessToken不传也就是null,代码依然会往下执行,导致将脚本注入到机器中,已达到运行的目的,可以看截图那段代码逻辑
填空怎么填呢?空串么那第三个值不相等了吧
你就拦截呀,为null的时候直接返回,校验token相同才往后执行呀
大佬,你是怎么定位到这行代码的,强
我觉得加个内部服务访问标识,这样内部服务直接放行,大概这样子 大神们,看下可对!!
这种项目通常不建议放到公网上面执行吧
你是指 accessTokenReq 为空还是 执行器的配置accessToken为空呢?如果是accessTokenReq为空过不去呀
但凡有点安全意识的开发accessToken都不会设置为空
这叫漏洞?你自己不设置accessToken怪谁,你这和手机不设置密码被人转走了钱有什么区别
漏洞:依赖xxl-job-core 的客服端在启动的HTTP Server (EmbedServer)的代码存在安全漏洞,如果这个httpserver的端口被拿到,然后请求路径如果是 /run ,请求内容是一个脚本代码,同时accessToken 不传递,也就是为null,后面的代码依然也能正常执行,导致恶意的脚本被注入到机器
有问题的代码就在,process 方法对accessToken的校验这里,如果accessToken是空的,后面代码就会被放行,然后发来的数据恰好是一个shell的脚本,那可能就会在本地被执行,也就是调用到
https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java#L177 https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java#L178 https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java#L179 https://github.com/xuxueli/xxl-job/blob/72963e4716a74eacdcbdd2e999c433debf3afaa3/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java#L180
目前在我们的服务器上有利用这个漏洞来发起大量脚本攻击
也就是下面代码会被执行,导致被攻击了, TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class); return executorBiz.run(triggerParam);
我们主要是放的服务器开外网和端口了