作者:xxhzz@星闌科技PortalLab
原文鏈接:https://mp.weixin.qq.com/s/zGDZeG3_lz5IdJ-V4zZjhg
項目介紹
Bonitasoft 是一個業務自動化平臺,可以更輕松地在業務流程中構建、部署和管理自動化應用程序;Bonita 是一個用于業務流程自動化和優化的開源和可擴展平臺。
漏洞描述
在Bonitasoft Authorization漏洞版本,由于 API 授權過濾器中配置問題,通過精心構造的的字符串附加到 API URL,能夠繞過權限認證。擁有普通用戶權限的攻擊者在繞過權限認證后,將惡意代碼部署到服務器上,進行遠程代碼執行。
利用范圍
For community(社區版):
2022.1-u0 (7.14.0) 以下
For subscription(訂閱版):
2022.1-u0 (7.14.0) 以下
2021.2-u4 (7.13.4) 以下
2021.1-0307 (7.12.11) 以下
7.11.7 以下
漏洞分析
環境搭建
使用docker搭建環境,docker鏡像(https://hub.docker.com/_/bonita/tags)選擇7.13.0版本。

下載鏡像之后,直接輸入命令docker run -d -p 8080:8080 -p 5050:5050,5050為遠程動態調試端口。
在/opt/bonita目錄下載源碼。

使用idea進行遠程調試配置。

在/opt/bonita/BonitaCommunity-2021.2-u0/server/bin/catalina.sh中加入配置。

隨即訪問http://ip:8080,環境搭建成功。

默認賬號密碼:install/install
代碼調試
從漏洞披露參考文章看,該漏洞產生的原理是由于身份驗證/權限繞過,導致沒有特權的用戶可以通過api端口上傳惡意文件,從而命令執行。

定位到參考文章所提交到的filers
在bonita\BonitaCommunity-2021.2-u0\server\webapps\bonita\WEB-INF\web.xml配置文件中,自定義了filter,并且對參數excludePatterns進行了賦值。

2個不同的過濾器類RestAPIAuthorizationFilter、TokenValidatorFilter中的參數excludePattern都被指定為“i18ntranslation”


在web.xml的192行和215行定義了/API/*路由下對應的filter為RestAPIAuthorizationFilter、TokenValidatorFilter
而RestAPIAuthorizationFilter和TokenValidatorFilter都屬于AbstractAuthorizationFilter子類。


定位到org.bonitasoft.console.common.server.login.filter.AbstractAuthorizationFilter#doFilter函數。

會使用“sessionIsNotNeeded”函數進行檢查,如果它返回 true,它將繼續應用程序流程。
而sessionIsNotNeeded 函數檢查匹配 URL 中的是否包含excludePatterns
在web.xml已經對excludePatterns進行了賦值為“i18ntranslation”,所以當url中包含“i18ntranslation”時,isMatched 就會返回true

流程就會繼續,就相當于繞過了權限過濾,允許訪問資源。

總結就是在URl包含“/i18ntranslation/../”或“;i18ntranslation”就可以繞過權限認證。
為實現遠程命令執行,思路是上傳惡意文件,上傳接口在web.xml中也定義了,為/API/pageUpload

找到org.bonitasoft.console.common.server.servlet.PageUploadServlet#getPagePermissions
在文件處理過程中,需要獲取的session存在apisession


而且未登錄的情況下,apisession也沒法賦值,就會導致getPagePermissions拋出異常。
所以,為實現遠程命令執行,還需要擁有一個普通的用戶。
漏洞復現
先創建一個test/test用戶。

根據以上分析原理,使用exp,成功執行命令。

修復建議
更新至安全無漏洞版本。
參考材料
1.https://rhinosecuritylabs.com/application-security/cve-2022-25237-bonitasoft-authorization-bypass/
2.https://hub.docker.com/_/bonita
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1985/
暫無評論