漏洞:依赖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);
我们主要是放的服务器开外网和端口了