
在當(dāng)前復(fù)雜的網(wǎng)絡(luò)安全環(huán)境中,服務(wù)器端請(qǐng)求偽造(SSRF)漏洞已成為企業(yè)面臨的嚴(yán)峻挑戰(zhàn)之一。這類漏洞允許攻擊者利用服務(wù)器發(fā)起惡意請(qǐng)求,進(jìn)而訪問(wèn)內(nèi)部系統(tǒng)或外部資源,對(duì)企業(yè)數(shù)據(jù)安全和業(yè)務(wù)連續(xù)性構(gòu)成嚴(yán)重威脅。XXL-JOB-admin 調(diào)度中心被曝出SSRF漏洞(CVE-2022-43183),再次為我們敲響了警鐘。本文將圍繞這一典型案例,深入探討 SSRF 漏洞的原理、復(fù)現(xiàn)過(guò)程、以及企業(yè)應(yīng)如何構(gòu)建堅(jiān)固的防護(hù)體系,旨在為廣大開發(fā)者和安全從業(yè)者提供一份全面的技術(shù)指南和實(shí)踐參考。
?
01
漏洞概覽
/ TINGYUN
XXL-JOB 是許雪里(XXL-JOB)社區(qū)的一款基于 java 語(yǔ)言的分布式任務(wù)調(diào)度平臺(tái)。該項(xiàng)目由3個(gè)部分組成,xxl-job-admin 主要提供任務(wù)調(diào)度中心的web頁(yè)面,xxl-job-executor-samples 是 xxl-job 執(zhí)行器的示例代碼,xxl-job-core 封裝了 xxl-job-admin 和 xxl-job-executor-sample 核心代碼。
XXL-JOB v2.3.1 之前版本存在安全漏洞,該漏洞源于組件 /admin/controller/JobLogController.java 中包含服務(wù)器端請(qǐng)求偽造(SSRF)。
02
風(fēng)險(xiǎn)自查
/ TINGYUN
為了及時(shí)發(fā)現(xiàn)并規(guī)避潛在風(fēng)險(xiǎn),企業(yè)應(yīng)立即對(duì)當(dāng)前使用的 xxl-job 版本進(jìn)行自查。您可以通過(guò)聽云 ASPM 的組件風(fēng)險(xiǎn)功能或其他專業(yè)的安全檢測(cè)工具,核查您的 xxl-job 版本是否處于以下受影響的范圍內(nèi):
?
xxl-job
03
如何修復(fù)受影響的程序
/ TINGYUN
升級(jí)到 xxl-job 2.4.0 及以上版本:
-
?XXL-JOB 3.x 版本開始要求使用 JDK17。對(duì)于仍在使用 JDK1.8 的用戶,目前支持 JDK1.8 的最新穩(wěn)定版本是 XXL-JOB 2.5.0。請(qǐng)根據(jù)您的實(shí)際環(huán)境選擇合適的升級(jí)路徑,確保系統(tǒng)兼容性。 ?
04
漏洞的原理及利用
/ TINGYUN
漏洞的原理
理解 SSRF 漏洞的深層原理對(duì)于有效防范至關(guān)重要。XXL-JOB-admin 調(diào)度中心 SSRF 漏洞的產(chǎn)生,源于其在處理執(zhí)行器調(diào)度日志請(qǐng)求時(shí),對(duì)執(zhí)行器 URL 地址的校驗(yàn)不足。
xxl-job 調(diào)度中心后臺(tái)用戶在查看執(zhí)行器調(diào)度日志時(shí),請(qǐng)求中會(huì)指定執(zhí)行器的 URL 地址,讓調(diào)度中心去該 URL 地址的執(zhí)行器獲取調(diào)度日志。由于調(diào)度中心服務(wù)發(fā)起對(duì)執(zhí)行器的請(qǐng)求時(shí)沒有對(duì)該url地址進(jìn)行校驗(yàn),故惡意攻擊者可以指定服務(wù)器請(qǐng)求的 URL 地址,導(dǎo)致 xxl-job 調(diào)度中心后臺(tái)存在 SSRF 漏洞。
?
漏洞復(fù)現(xiàn)
1.搭建環(huán)境
我們選擇 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
//啟動(dòng) xxj-job-admin
//啟動(dòng)編輯器
至此我們的復(fù)現(xiàn)環(huán)境準(zhǔn)備完畢。
2.登錄并執(zhí)行任務(wù)
訪問(wèn)http://{hostip}:8080/xxl-job-admin/登錄,然后來(lái)到【任務(wù)管理】,執(zhí)行任務(wù)(確保我們的執(zhí)行器已經(jīng)正確連接到 xxl-job-admin)。

3.查看調(diào)度日志并抓取數(shù)據(jù)包
用 yso-java hack 構(gòu)造序列化數(shù)據(jù)任務(wù)執(zhí)行完成后,進(jìn)入【調(diào)度日志】頁(yè)面,找到剛剛執(zhí)行的任務(wù)日志,并抓取原始數(shù)據(jù)包。這個(gè)數(shù)據(jù)包將包含 executorAddress 字段,它是 SSRF 漏洞利用的關(guān)鍵。
4.修改數(shù)據(jù)包并發(fā)送請(qǐng)求?
修改數(shù)據(jù)包中的 executorAddress 字段為我們要請(qǐng)求的地址,然后發(fā)送請(qǐng)求。

5.驗(yàn)證漏洞利用成功
如果一切順利,您將在 DNSLOG 平臺(tái)收到來(lái)自 XXL-JOB 調(diào)度中心服務(wù)器的請(qǐng)求信息,這表明 SSRF 漏洞已成功被利用。
漏洞追蹤
為了更深入地理解漏洞的成因,我們對(duì) XXL-JOB 的相關(guān)代碼進(jìn)行了追蹤分析:
1.參數(shù)接收與傳遞
觀從 POST?
/xxl-job-admin/joblog/logDetailCat?
接口接收?String executorAddress 參數(shù),
然后直接帶入到
XxlJobScheduler.getExecutorBiz(executorAddress) 中執(zhí)行。

2.缺乏安全校驗(yàn)
通過(guò)觀察 XxlJobScheduler.java,發(fā)現(xiàn)傳入的 executorAddress 沒有經(jīng)過(guò)特別的安全校驗(yàn),返回了接口類 executorBiz。

3.接口類功能定義
接口類 executorBiz 中定義了遠(yuǎn)程執(zhí)行器應(yīng)該具備的功能(心跳、觸發(fā)任務(wù)、kill、日志等)。其中日志功能有兩個(gè)實(shí)現(xiàn)類,其中 ExecutorBizClinent 下面會(huì)提到的。

4.日志方法調(diào)用
接下來(lái)我們回到原來(lái)的代碼,進(jìn)入下一步,這時(shí)候調(diào)用了接口類 executorBiz 的 log 方法。

5.ExecutorBizClient 的初始化與拼接
我們找到 executorBiz 的實(shí)現(xiàn)類 ExecutorBizeClient,調(diào)用 log 函數(shù)前的初始化步驟,會(huì)通過(guò)構(gòu)造函數(shù)在每一個(gè) addresssUrl 后面加一個(gè)“/”,然后返回 XxlJobRemotingUtil.postBody 的調(diào)用結(jié)果,還會(huì)在初始化后的 addressUrl 拼接“l(fā)og”,所以實(shí)際調(diào)用的 addressUrl 應(yīng)該是http://{addressUrl}/log。

6.直接發(fā)起POST請(qǐng)求
接下來(lái)我們跟到?
XxlJobRemotingUtil.postBody可以看到直接對(duì)?
url發(fā)起了POST請(qǐng)求。
小結(jié):從整條鏈路上來(lái)看,從 POST /xxl-job-admin/joblog/logDetailCat 接口接收用戶輸入的 executorAddress 字段,只做了一些常規(guī)的校驗(yàn)和拼接,沒有經(jīng)過(guò)任何安全校驗(yàn),直接被服務(wù)端發(fā)起請(qǐng)求,滿足了 SSRF 漏洞的利用條件。
?
05
聽云 ASPM 如何提供幫助
/ TINGYUN
面對(duì)日益復(fù)雜的網(wǎng)絡(luò)安全威脅,專業(yè)的應(yīng)用安全性能管理(ASPM)工具顯得尤為重要。聽云 ASPM 用戶可以通過(guò)威脅感知,組件風(fēng)險(xiǎn),來(lái)實(shí)時(shí)觀察自己的系統(tǒng)是否存在依賴 0day 安全風(fēng)險(xiǎn)以及 1day 或 nday 的組件風(fēng)險(xiǎn)。針對(duì)上述 xxl-job 漏洞,聽云 ASPM 能夠發(fā)揮以下關(guān)鍵作用:

SSRF漏洞發(fā)現(xiàn)
當(dāng) xxl-job-admin 通過(guò)聽云探針插樁后,惡意攻擊者嘗試 SSRF 攻擊,聽云 ASPM 能夠立即發(fā)現(xiàn) SSRF 漏洞。


威脅感知詳情
通過(guò) ASPM,用戶可以看到 SSRF 攻擊的請(qǐng)求信息和堆棧信息,幫助企業(yè)快速定位觸發(fā)漏洞的位置。

威脅感知詳情-修復(fù)方案
ASPM 還提供 SSRF 漏洞的原理解析和修復(fù)示例,幫助開發(fā)人員理解和修復(fù)漏洞。
?
06
企業(yè)如何應(yīng)對(duì)SSRF漏洞:
/ TINGYUN
在企業(yè) Web 應(yīng)用開發(fā)過(guò)程中,開發(fā)者常常會(huì)忽視對(duì)用戶輸入的安全校驗(yàn),從而引發(fā) SSRF 漏洞。例如,《CVE-2022-43183 XXL-JOB-admin 調(diào)度中心 SSRF 漏洞》就是典型案例。應(yīng)對(duì)這類問(wèn)題的核心在于確保請(qǐng)求地址的可信性:pache Tomcat 反序列化漏洞(CVE-2025-24813)的曝光,再次凸顯了在當(dāng)前復(fù)雜多變的網(wǎng)絡(luò)環(huán)境中,開發(fā)人員定期更新依賴項(xiàng)、檢查安全架構(gòu)以及部署專業(yè)安全工具的重要性。這一事件不僅是對(duì)技術(shù)人員的一次警醒,也證明了聽云 ASPM 類型應(yīng)用安全性能管理工具在 0day 漏洞防護(hù)、組件安全等應(yīng)用安全領(lǐng)在企業(yè) Web 應(yīng)用開發(fā)過(guò)程中,開發(fā)者常常會(huì)忽視對(duì)用戶輸入的安全校驗(yàn),從而引發(fā) SSRF 漏洞。例如,《CVE-2022-43183 XXL-JOB-admin 調(diào)度中心 SSRF 漏洞》就是典型案例。應(yīng)對(duì)這類問(wèn)題的核心在于確保請(qǐng)求地址的可信性:域中的不可替代作用。只有持續(xù)關(guān)注安全動(dòng)態(tài),積極采取防護(hù)措施,才能在網(wǎng)絡(luò)空間中筑牢堅(jiān)實(shí)的防線,確保業(yè)務(wù)的持續(xù)穩(wěn)定運(yùn)行。
?
嚴(yán)格的輸入校驗(yàn):
如果請(qǐng)求地址由用戶提供,應(yīng)通過(guò)嚴(yán)格的安全校驗(yàn),例如結(jié)合白名單與黑名單機(jī)制。
?
數(shù)據(jù)庫(kù)入庫(kù)前校驗(yàn):
如果請(qǐng)求地址來(lái)源于服務(wù)器數(shù)據(jù)庫(kù),則需要在入庫(kù)前就進(jìn)行安全校驗(yàn),確保其合法性與安全性。
?
網(wǎng)絡(luò)策略限制:
通過(guò)合理的網(wǎng)絡(luò)策略配置限制敏感資源訪問(wèn),例如在防火墻、Nginx、云安全組中阻斷應(yīng)用對(duì)內(nèi)部管理端口、元數(shù)據(jù)服務(wù)(如 169.254.169.254)及非必要外網(wǎng)地址的訪問(wèn),從而降低 SSRF 攻擊利用的可能性。?
?
借助專業(yè)工具:
借助專業(yè)的應(yīng)用安全性能管理(ASPM)工具, 企業(yè)能夠及時(shí)發(fā)現(xiàn)和追蹤應(yīng)用中的安全缺陷,從而有效筑牢整體安全防線。 ?
?
【CVE-2022-43183 XXL-JOB-admin?調(diào)度中心 SSRF 漏洞】的曝光,再次提醒我們 SSRF 漏洞的普遍性和危害性。面對(duì)日益嚴(yán)峻的網(wǎng)絡(luò)安全形勢(shì),企業(yè)必須從開發(fā)、部署到運(yùn)維的各個(gè)環(huán)節(jié),全面加強(qiáng)安全防護(hù)。通過(guò)嚴(yán)格的輸入校驗(yàn)、合理的網(wǎng)絡(luò)策略配置以及引入專業(yè)的 ASPM 工具,企業(yè)能夠有效抵御 SSRF 等各類安全威脅,確保業(yè)務(wù)的持續(xù)穩(wěn)定運(yùn)行。
?
參考:
https://github.com/xuxueli/xxl-job/issues/3002
聲明:
本文的所有漏洞環(huán)境均為本地測(cè)試環(huán)境,且本文僅供學(xué)習(xí)、安全研究參考使用,請(qǐng)勿用作違法用途,否則后果自負(fù)。
?
推薦閱讀

?
在當(dāng)今時(shí)代,網(wǎng)絡(luò)已經(jīng)得到了普遍的應(yīng)用,為了獲得更好的網(wǎng)絡(luò)體驗(yàn),需要做好很多相關(guān)的工作。網(wǎng)絡(luò)出口壓測(cè)就是比較常見的一種測(cè)試方法,可以對(duì)網(wǎng)絡(luò)出口的帶寬和其它等性能進(jìn)行測(cè)試,比如測(cè)試網(wǎng)絡(luò)出口的丟包率,以及吞吐量等,以便于技術(shù)人員對(duì)網(wǎng)絡(luò)出口質(zhì)量進(jìn)行評(píng)估,進(jìn)行下一步的優(yōu)化,下面就來(lái)介紹一下這種測(cè)試方法的關(guān)鍵步驟。
2023-04-11
在數(shù)字化轉(zhuǎn)型日益深化的今天,網(wǎng)站作為企業(yè)線上業(yè)務(wù)的重要載體,其健康穩(wěn)定運(yùn)行與用戶體驗(yàn)優(yōu)化成為關(guān)鍵。一套全面且精細(xì)的網(wǎng)站監(jiān)測(cè)方案不僅是保障網(wǎng)站效能的基礎(chǔ),更是驅(qū)動(dòng)業(yè)務(wù)增長(zhǎng)的重要工具。本文將探討如何制定并實(shí)施一套既有深度思考又易于理解的網(wǎng)站監(jiān)測(cè)方案?。
2024-01-26
隨著互聯(lián)網(wǎng)的普及和Web應(yīng)用程序的廣泛使用,網(wǎng)站安全已成為企業(yè)和個(gè)人關(guān)注的焦點(diǎn)。網(wǎng)站漏洞監(jiān)測(cè)?則是確保網(wǎng)站安全的重要工具,可及時(shí)發(fā)現(xiàn)并解決潛在的安全漏洞,以防止黑客攻擊和數(shù)據(jù)泄露。那么,網(wǎng)站漏洞監(jiān)測(cè)方法有哪些?
2024-01-10
在當(dāng)今數(shù)字化時(shí)代,應(yīng)用性能管理(apm)成為了企業(yè)實(shí)現(xiàn)高效運(yùn)營(yíng)的重要環(huán)節(jié)。而在這個(gè)領(lǐng)域中,apm應(yīng)用性能管理廠商發(fā)揮著關(guān)鍵的作用。本文將為大家介紹下apm應(yīng)用性能管理廠商?的背景和其在應(yīng)用性能提升方面的重要性。
2023-08-28













系電話.png)