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

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

目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、天水網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

XXL-JOB描述

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

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

一、 漏洞詳情

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

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

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

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

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

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

【漏洞描述】

XXL-JOB的Restful API接口或RPC接口沒(méi)有配置認(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)訪問(wèn)RCE漏洞復(fù)現(xiàn)

2. Maven下載所需要的依賴

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

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

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

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

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問(wè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ù)庫(kù)

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

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問(wè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ù)庫(kù)配置

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

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

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

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問(wèn)RCE漏洞復(fù)現(xiàn)查看配置文件,發(fā)現(xiàn)xxl.job.executor.logpath參數(shù),我們可以新建或修改該路徑,以防止程序執(zhí)行出現(xiàn)問(wè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 /來(lái)解除Sip的限制。運(yùn)行XxlJobExecutorApplication來(lái)啟動(dòng)執(zhí)行器。瀏覽器打開//localhost:8080/,看到登入界面,確保啟動(dòng)成功,默認(rèn)登錄賬號(hào)“admin/123456”

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

注意點(diǎn):

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

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

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

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

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

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

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

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

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

如何進(jìn)行XXL-JOB API接口未授權(quán)訪問(wè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í)行器未開啟訪問(wèn)令牌,會(huì)導(dǎo)致無(wú)法識(shí)別并攔截非法的調(diào)度請(qǐng)求。惡意請(qǐng)求方可以借助 GLUE 模式,推送惡意攻擊代碼實(shí)現(xiàn)遠(yuǎn)程攻擊。因此,XXL-JOB 作者認(rèn)為該問(wèn)題本質(zhì)上不屬于 “漏洞”,官網(wǎng)版本提供了鑒權(quán)組件,開啟即可進(jìn)行防護(hù)。

四、修復(fù)建議

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

2. 端口訪問(wèn)限制:通過(guò)配置安全組限制只允許指定IP才能訪問(wèn)端口

感謝你的閱讀,相信你對(duì)“如何進(jìn)行XXL-JOB API接口未授權(quán)訪問(wèn)RCE漏洞復(fù)現(xiàn)”這一問(wèn)題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)?lái)更好的文章!

分享名稱:如何進(jìn)行XXL-JOBAPI接口未授權(quán)訪問(wèn)RCE漏洞復(fù)現(xiàn)
鏈接URL:http://muchs.cn/article38/jpgppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站改版、服務(wù)器托管、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)