在当前复杂的网络安全环境中,服务器端请求伪造(SSRF)漏洞已成为企业面临的严峻挑战之一。这类漏洞允许攻击者利用服务器发起恶意请求,进而访问内部系统或外部资源,对企业数据安全和业务连续性构成严重威胁。XXL-JOB-admin 调度中心被曝出SSRF漏洞(CVE-2022-43183),再次为我们敲响了警钟。本文将围绕这一典型案例,深入探讨 SSRF 漏洞的原理、复现过程、以及企业应如何构建坚固的防护体系,旨在为广大开发者和安全从业者提供一份全面的技术指南和实践参考。

 

01

漏洞概览

/ TINGYUN

XXL-JOB 是许雪里(XXL-JOB)社区的一款基于 java 语言的分布式任务调度平台。该项目由3个部分组成,xxl-job-admin 主要提供任务调度中心的web页面,xxl-job-executor-samples 是 xxl-job 执行器的示例代码,xxl-job-core 封装了 xxl-job-admin 和 xxl-job-executor-sample 核心代码。


XXL-JOB v2.3.1 之前版本存在安全漏洞,该漏洞源于组件 /admin/controller/JobLogController.java 中包含服务器端请求伪造(SSRF)。

02

风险自查

/ TINGYUN

为了及时发现并规避潜在风险,企业应立即对当前使用的 xxl-job 版本进行自查。您可以通过听云 ASPM 的组件风险功能或其他专业的安全检测工具,核查您的 xxl-job 版本是否处于以下受影响的范围内:

PlainText

 

xxl-job

03

如何修复受影响的程序

/ TINGYUN

针对XXL-JOB-admin 调度中心SSRF漏洞,最直接有效的修复方式是升级您的 XXL-JOB 版本。请注意以下升级建议:
 

升级到 xxl-job 2.4.0 及以上版本:

  •  XXL-JOB 3.x 版本开始要求使用 JDK17。对于仍在使用 JDK1.8 的用户,目前支持 JDK1.8 的最新稳定版本是 XXL-JOB 2.5.0。请根据您的实际环境选择合适的升级路径,确保系统兼容性。
     

04

漏洞的原理及利用

/ TINGYUN

漏洞的原理

理解 SSRF 漏洞的深层原理对于有效防范至关重要。XXL-JOB-admin 调度中心 SSRF 漏洞的产生,源于其在处理执行器调度日志请求时,对执行器 URL 地址的校验不足。

xxl-job 调度中心后台用户在查看执行器调度日志时,请求中会指定执行器的 URL 地址,让调度中心去该 URL 地址的执行器获取调度日志。由于调度中心服务发起对执行器的请求时没有对该url地址进行校验,故恶意攻击者可以指定服务器请求的 URL 地址,导致 xxl-job 调度中心后台存在 SSRF 漏洞。

 

漏洞复现

为了更直观地理解 SSRF 漏洞的利用过程,我们将通过 XXL-JOB v2.3.0 版本进行漏洞复现。以下是详细的复现步骤:

1.搭建环境

我们选择 XXL-JOB v2.3.0,笔者为了方便分析源码,用源码搭建,也可以用 Docker 搭建,
源码地址:https://github.com/xuxueli/xxl-job/releases/tag/2.3.0
xxl-job快速入门https://www.xuxueli.com/xxl-job/#%E4%BA%8C%E3%80%81%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8

//启动 xxj-job-admin

//启动编辑器

至此我们的复现环境准备完毕。

2.登录并执行任务

访问http://{hostip}:8080/xxl-job-admin/登录,然后来到【任务管理】,执行任务(确保我们的执行器已经正确连接到 xxl-job-admin)。

3.查看调度日志并抓取数据包

用 yso-java hack 构造序列化数据任务执行完成后,进入【调度日志】页面,找到刚刚执行的任务日志,并抓取原始数据包。这个数据包将包含 executorAddress 字段,它是 SSRF 漏洞利用的关键。

4.修改数据包并发送请求 

修改数据包中的 executorAddress 字段为我们要请求的地址,然后发送请求。

5.验证漏洞利用成功

如果一切顺利,您将在 DNSLOG 平台收到来自 XXL-JOB 调度中心服务器的请求信息,这表明 SSRF 漏洞已成功被利用。

漏洞追踪

为了更深入地理解漏洞的成因,我们对 XXL-JOB 的相关代码进行了追踪分析:

1.参数接收与传递

观从 POST 

/xxl-job-admin/joblog/logDetailCat 

接口接收 String executorAddress 参数,

然后直接带入到

XxlJobScheduler.getExecutorBiz(executorAddress) 中执行。

2.缺乏安全校验

通过观察 XxlJobScheduler.java,发现传入的 executorAddress 没有经过特别的安全校验,返回了接口类 executorBiz。

3.接口类功能定义

接口类 executorBiz 中定义了远程执行器应该具备的功能(心跳、触发任务、kill、日志等)。其中日志功能有两个实现类,其中 ExecutorBizClinent 下面会提到的。

4.日志方法调用

接下来我们回到原来的代码,进入下一步,这时候调用了接口类 executorBiz 的 log 方法。

5.ExecutorBizClient 的初始化与拼接

我们找到 executorBiz 的实现类 ExecutorBizeClient,调用 log 函数前的初始化步骤,会通过构造函数在每一个 addresssUrl 后面加一个“/”,然后返回 XxlJobRemotingUtil.postBody 的调用结果,还会在初始化后的 addressUrl 拼接“log”,所以实际调用的 addressUrl 应该是http://{addressUrl}/log。

6.直接发起POST请求

接下来我们跟到 

XxlJobRemotingUtil.postBody可以看到直接对 

url发起了POST请求。

小结:从整条链路上来看,从 POST /xxl-job-admin/joblog/logDetailCat 接口接收用户输入的 executorAddress 字段,只做了一些常规的校验和拼接,没有经过任何安全校验,直接被服务端发起请求,满足了 SSRF 漏洞的利用条件。

 

05

听云 ASPM 如何提供帮助

/ TINGYUN

面对日益复杂的网络安全威胁,专业的应用安全性能管理(ASPM)工具显得尤为重要。听云 ASPM 用户可以通过威胁感知,组件风险,来实时观察自己的系统是否存在依赖 0day 安全风险以及 1day 或 nday 的组件风险。针对上述 xxl-job 漏洞,听云 ASPM 能够发挥以下关键作用:

SSRF漏洞发现

当 xxl-job-admin 通过听云探针插桩后,恶意攻击者尝试 SSRF 攻击,听云 ASPM 能够立即发现 SSRF 漏洞。

威胁感知详情

通过 ASPM,用户可以看到 SSRF 攻击的请求信息和堆栈信息,帮助企业快速定位触发漏洞的位置。

威胁感知详情-修复方案

ASPM 还提供 SSRF 漏洞的原理解析和修复示例,帮助开发人员理解和修复漏洞。

 

06

企业如何应对SSRF漏洞:

/ TINGYUN

在企业 Web 应用开发过程中,开发者常常会忽视对用户输入的安全校验,从而引发 SSRF 漏洞。例如,《CVE-2022-43183 XXL-JOB-admin 调度中心 SSRF 漏洞》就是典型案例。应对这类问题的核心在于确保请求地址的可信性:pache Tomcat 反序列化漏洞(CVE-2025-24813)的曝光,再次凸显了在当前复杂多变的网络环境中,开发人员定期更新依赖项、检查安全架构以及部署专业安全工具的重要性。这一事件不仅是对技术人员的一次警醒,也证明了听云 ASPM 类型应用安全性能管理工具在 0day 漏洞防护、组件安全等应用安全领在企业 Web 应用开发过程中,开发者常常会忽视对用户输入的安全校验,从而引发 SSRF 漏洞。例如,《CVE-2022-43183 XXL-JOB-admin 调度中心 SSRF 漏洞》就是典型案例。应对这类问题的核心在于确保请求地址的可信性:域中的不可替代作用。只有持续关注安全动态,积极采取防护措施,才能在网络空间中筑牢坚实的防线,确保业务的持续稳定运行。

 

严格的输入校验:

如果请求地址由用户提供,应通过严格的安全校验,例如结合白名单与黑名单机制。

 

数据库入库前校验:

如果请求地址来源于服务器数据库,则需要在入库前就进行安全校验,确保其合法性与安全性。

 

网络策略限制:

通过合理的网络策略配置限制敏感资源访问,例如在防火墙、Nginx、云安全组中阻断应用对内部管理端口、元数据服务(如 169.254.169.254)及非必要外网地址的访问,从而降低 SSRF 攻击利用的可能性。 

 

借助专业工具:

借助专业的应用安全性能管理(ASPM)工具, 企业能够及时发现和追踪应用中的安全缺陷,从而有效筑牢整体安全防线。  

 

【CVE-2022-43183 XXL-JOB-admin 调度中心 SSRF 漏洞】的曝光,再次提醒我们 SSRF 漏洞的普遍性和危害性。面对日益严峻的网络安全形势,企业必须从开发、部署到运维的各个环节,全面加强安全防护。通过严格的输入校验、合理的网络策略配置以及引入专业的 ASPM 工具,企业能够有效抵御 SSRF 等各类安全威胁,确保业务的持续稳定运行。

 

参考:

https://github.com/xuxueli/xxl-job/issues/3002

声明:

本文的所有漏洞环境均为本地测试环境,且本文仅供学习、安全研究参考使用,请勿用作违法用途,否则后果自负。

 

推荐阅读

 

  • 随着科技的不断进步和应用的不断扩展,智能告警系统正逐渐成为各行各业的重要工具。这是一种基于计算机技术和人工智能算法的安全监控系统,能够实时检测和分析可能存在的安全风险,并及时发出警报。这种系统不仅可以大大提升工作效率,还能减小事故和损失的可能性,因此在许多行业中得到广泛应用。

    2024-01-04

  • 应用性能管理APM测试是一种软件测试方法,旨在检查应用程序的性能和功能,它主要用于识别并解决应用程序中的瓶颈,以便提高应用程序的可靠性、响应时间和吞吐量。应用性能管理测试通常涉及对应用程序进行监视、分析和优化,以确保其正常运行并符合用户的需求。

    2023-06-29

  • 业务运维​成为企业稳定运营的支柱之一。这项关键职能涵盖了从技术到流程的多个层面,以确保企业的业务系统和流程持续稳定,同时为持续增长提供支持。从系统监控到性能优化,从安全保障到持续创新,业务运维在企业中发挥着不可替代的作用。

    2023-08-15

  • 在重大节假日或重大业务事件如“春晚”、双“十一”、健康码压测、银行灾备演练等期间,我们经常会面临业务系统高峰期的访问压力。为了保障系统的稳定运行和提供舒适的用户体验,应用性能管理软件成为不可或缺的工具。通过深入分析实时监控数据、及时发现问题、提出优化建议,并协调相关厂商和技术人员进行优化,应用性能管理软件可以帮助我们应对业务中断的挑战,提升业务稳定性和用户体验。

    2023-07-18

  • 网络链路故障的发生可能导致网站访问延迟、数据丢失以及在线服务中断等问题。为了快速解决这些故障,我们需要进行科学而系统的链路故障分析。网络链路故障分析是一项复杂的工作,需要技术专家对网络结构、设备以及数据流进行仔细的排查和分析。

    2023-07-06