您好,登錄后才能下訂單哦!
這篇文章的內容主要圍繞如何進行XXL-JOB API接口未授權訪問RCE漏洞復現進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
XXL-JOB是一個輕量級分布式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼并接入多家公司線上產品線,開箱即用。
此次漏洞核心問題是 GLUE 模式。XXL-JOB 通過“GLUE模式”支持多語言以及腳本任務,該模式任務特點如下:
● 多語言支持:支持 Java、Shell、Python、NodeJS、PHP、PowerShell……等類型。
● Web IDE:任務以源碼方式維護在調度中心,支持通過 Web IDE 在線開發、維護。
● 動態生效:用戶在線通過 Web IDE 開發的任務代碼,遠程推送至執行器,實時加載執行。
如上圖所示,如果在 GLUE 模式任務代碼中寫入攻擊代碼,推送到執行器執行即可造成遠程攻擊。
【漏洞描述】
XXL-JOB的Restful API接口或RPC接口沒有配置認證措施,未授權的攻擊者可構造惡意請求,造成遠程執行命令
【漏洞評級】
高危
【受影響版本】
XXL-JOB <= 2.2.0
整體思路:源代碼下載->Maven安裝依賴->配置部署“調度中心”->配置部署“執行器項目”->完成部署
本地開發環境:Java8+Maven3.6
1. Github下載源代碼
地址:https://github.com/xuxueli/xxl-job/releases/tag/v2.2.0
2. Maven下載所需要的依賴
Idea打開解壓后的源代碼,自動會進行pom中的相關依賴安裝,也可以在終端使用maven命令下載所需要的依賴
3. 數據庫配置
調度數據庫初始化SQL腳本位置為:
/xxl-job/doc/db/tables_xxl_job.sql
因為本地未安裝mysql,故使用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
這樣我們就啟動了mysql容器,賬號為root,密碼為123456
使用navicat接連數據庫
可以點擊左下角,完成測試連接。在導入的數據庫右鍵,選擇運行SQL文件,點擊開始即可完成數據庫的導入。
4. 配置部署“調度中心”
調度中心項目:xxl-job-admin
作用:統一管理任務調度平臺上調度任務,負責觸發調度執行,并且提供任務管理平臺。可根據實際情況自行修改application.properties中的數據庫配置
執行XxlJobAdminApplication啟動調度中心
我們使用推薦的Springboot來管理執行器
查看配置文件,發現xxl.job.executor.logpath參數,我們可以新建或修改該路徑,以防止程序執行出現問題。Mac新系統不存在data路徑,發現使用mkdir創建路徑發現失敗,這是因為mac系統中關閉了Sip,使用sudo mount -uw /來解除Sip的限制。運行XxlJobExecutorApplication來啟動執行器。瀏覽器打開//localhost:8080/,看到登入界面,確保啟動成功,默認登錄賬號“admin/123456”
注意點:
建議先創建/data/applogs/xxl-job,程序中多處配置文件使用該路徑
修改調度中心數據庫配置
Linux/Unix可使用lsof來查看端口占用情況,防止啟動失敗
調度中心和執行器可以根據實際情況分開部署
查看官方文檔可以看到執行器RESTful API中觸發任務接口說明
其中的任務運行模式有以下幾種
查看GulueTypeEnum源代碼
所以我們利用Burpsuite構造我們的POC
Tips:
修改glueSource時,如果執行未生效,請修改jobId
當重啟項目時,發現端口啟動異常,請關閉BurpSuite
由于 XXL-JOB 官方版本原生自帶鑒權組件,開啟后可保障系統底層通訊安全。XXL-JOB 作者表示正常情況下調度中心與執行器底層通訊是安全的,不存在遠程命令漏洞。但如果執行器未開啟訪問令牌,會導致無法識別并攔截非法的調度請求。惡意請求方可以借助 GLUE 模式,推送惡意攻擊代碼實現遠程攻擊。因此,XXL-JOB 作者認為該問題本質上不屬于 “漏洞”,官網版本提供了鑒權組件,開啟即可進行防護。
1. 開啟 XXL-JOB 自帶的鑒權組件:官方文檔中搜索 “xxl.job.accessToken”,按照文檔說明啟用即可。
2. 端口訪問限制:通過配置安全組限制只允許指定IP才能訪問端口
感謝你的閱讀,相信你對“如何進行XXL-JOB API接口未授權訪問RCE漏洞復現”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。