溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

發(fā)布時(shí)間:2022-01-18 16:24:46 來源:億速云 閱讀:361 作者:柒染 欄目:安全技術(shù)

這篇文章的內(nèi)容主要圍繞如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

XXL-JOB描述

XXL-JOB是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級(jí)、易擴(kuò)展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

一、 漏洞詳情

此次漏洞核心問題是 GLUE 模式。XXL-JOB 通過“GLUE模式”支持多語言以及腳本任務(wù),該模式任務(wù)特點(diǎn)如下:

● 多語言支持:支持 Java、Shell、Python、NodeJS、PHP、PowerShell……等類型。

● Web IDE:任務(wù)以源碼方式維護(hù)在調(diào)度中心,支持通過 Web IDE 在線開發(fā)、維護(hù)。

● 動(dòng)態(tài)生效:用戶在線通過 Web IDE 開發(fā)的任務(wù)代碼,遠(yuǎn)程推送至執(zhí)行器,實(shí)時(shí)加載執(zhí)行。

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

如上圖所示,如果在 GLUE 模式任務(wù)代碼中寫入攻擊代碼,推送到執(zhí)行器執(zhí)行即可造成遠(yuǎn)程攻擊。

【漏洞描述】

XXL-JOB的Restful API接口或RPC接口沒有配置認(rèn)證措施,未授權(quán)的攻擊者可構(gòu)造惡意請(qǐng)求,造成遠(yuǎn)程執(zhí)行命令

【漏洞評(píng)級(jí)】

高危

【受影響版本】

XXL-JOB <= 2.2.0

二、 環(huán)境搭建

整體思路:源代碼下載->Maven安裝依賴->配置部署“調(diào)度中心”->配置部署“執(zhí)行器項(xiàng)目”->完成部署

本地開發(fā)環(huán)境:Java8+Maven3.6

1. Github下載源代碼

地址:https://github.com/xuxueli/xxl-job/releases/tag/v2.2.0

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

2. Maven下載所需要的依賴

Idea打開解壓后的源代碼,自動(dòng)會(huì)進(jìn)行pom中的相關(guān)依賴安裝,也可以在終端使用maven命令下載所需要的依賴

3. 數(shù)據(jù)庫配置

調(diào)度數(shù)據(jù)庫初始化SQL腳本位置為:

/xxl-job/doc/db/tables_xxl_job.sql

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

因?yàn)楸镜匚窗惭bmysql,故使用docker安裝。

a) docker pull mysql:5.7

b) sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

這樣我們就啟動(dòng)了mysql容器,賬號(hào)為root,密碼為123456

使用navicat接連數(shù)據(jù)庫

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)可以點(diǎn)擊左下角,完成測試連接。在導(dǎo)入的數(shù)據(jù)庫右鍵,選擇運(yùn)行SQL文件,點(diǎn)擊開始即可完成數(shù)據(jù)庫的導(dǎo)入。

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

4. 配置部署“調(diào)度中心”

調(diào)度中心項(xiàng)目:xxl-job-admin

作用:統(tǒng)一管理任務(wù)調(diào)度平臺(tái)上調(diào)度任務(wù),負(fù)責(zé)觸發(fā)調(diào)度執(zhí)行,并且提供任務(wù)管理平臺(tái)??筛鶕?jù)實(shí)際情況自行修改application.properties中的數(shù)據(jù)庫配置

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

執(zhí)行XxlJobAdminApplication啟動(dòng)調(diào)度中心

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)我們使用推薦的Springboot來管理執(zhí)行器

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)查看配置文件,發(fā)現(xiàn)xxl.job.executor.logpath參數(shù),我們可以新建或修改該路徑,以防止程序執(zhí)行出現(xiàn)問題。Mac新系統(tǒng)不存在data路徑,發(fā)現(xiàn)使用mkdir創(chuàng)建路徑發(fā)現(xiàn)失敗,這是因?yàn)閙ac系統(tǒng)中關(guān)閉了Sip,使用sudo mount -uw /來解除Sip的限制。運(yùn)行XxlJobExecutorApplication來啟動(dòng)執(zhí)行器。瀏覽器打開//localhost:8080/,看到登入界面,確保啟動(dòng)成功,默認(rèn)登錄賬號(hào)“admin/123456”

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

注意點(diǎn):

建議先創(chuàng)建/data/applogs/xxl-job,程序中多處配置文件使用該路徑

修改調(diào)度中心數(shù)據(jù)庫配置

Linux/Unix可使用lsof來查看端口占用情況,防止啟動(dòng)失敗

調(diào)度中心和執(zhí)行器可以根據(jù)實(shí)際情況分開部署

三、漏洞復(fù)現(xiàn)

查看官方文檔可以看到執(zhí)行器RESTful API中觸發(fā)任務(wù)接口說明

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)其中的任務(wù)運(yùn)行模式有以下幾種

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)查看GulueTypeEnum源代碼

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)所以我們利用Burpsuite構(gòu)造我們的POC

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)

Tips:

修改glueSource時(shí),如果執(zhí)行未生效,請(qǐng)修改jobId

當(dāng)重啟項(xiàng)目時(shí),發(fā)現(xiàn)端口啟動(dòng)異常,請(qǐng)關(guān)閉BurpSuite

由于 XXL-JOB 官方版本原生自帶鑒權(quán)組件,開啟后可保障系統(tǒng)底層通訊安全。XXL-JOB 作者表示正常情況下調(diào)度中心與執(zhí)行器底層通訊是安全的,不存在遠(yuǎn)程命令漏洞。但如果執(zhí)行器未開啟訪問令牌,會(huì)導(dǎo)致無法識(shí)別并攔截非法的調(diào)度請(qǐng)求。惡意請(qǐng)求方可以借助 GLUE 模式,推送惡意攻擊代碼實(shí)現(xiàn)遠(yuǎn)程攻擊。因此,XXL-JOB 作者認(rèn)為該問題本質(zhì)上不屬于 “漏洞”,官網(wǎng)版本提供了鑒權(quán)組件,開啟即可進(jìn)行防護(hù)。

四、修復(fù)建議

1. 開啟 XXL-JOB 自帶的鑒權(quán)組件:官方文檔中搜索 “xxl.job.accessToken”,按照文檔說明啟用即可。

2. 端口訪問限制:通過配置安全組限制只允許指定IP才能訪問端口

感謝你的閱讀,相信你對(duì)“如何進(jìn)行XXL-JOB API接口未授權(quán)訪問RCE漏洞復(fù)現(xiàn)”這一問題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI