<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    【最新漏洞預警】Zoho ManageEngine Admanager Plus 任意文件上傳漏洞可GetShell

    VSole2021-12-06 05:06:14

    漏洞信息

    2021年9月,Zoho官方通報了Zoho ManageEngine ADManager Plus的多個漏洞:

    包括:

    CVE-2021-37539CVE-2021-37762CVE-2021-37741CVE-2021-37761CVE-2021-37925CVE-2021-37919CVE-2021-37920CVE-2021-37921CVE-2021-37923CVE-2021-37924CVE-2021-37918CVE-2021-37922CVE-2021-37931CVE-2021-37930CVE-2021-37929CVE-2021-37928CVE-2021-37926
    

    這些漏洞以文件上傳類型為主,影響v7111及以下版本。其實這個產品和前期分析的Zoho ManageEngine ADSelfService Plus有很多類似的代碼,相關文章鏈接如下:

    CVE-2021-40539
    QCyber,公眾號:且聽安全CVE-2021-40539-Zoho ManageEngine ADSelfService Plus如何從bypass到RCE

    下面將Zoho Manageengine Admanager Plus其中一處認證后的任意文件上傳漏洞分享給大家。

    進程分析

    系統使用Tomcat容器進行構建,查看服務配置:

    8080端口對應`ADMP`服務,找到對應進程并獲取啟動命令:

    加入調試信息并重啟,成功打開遠程調試端口:


    數據庫分析

    在`bin`目錄有一個連接數據庫腳本`connectDB.bat`:

    cd ../pgsql/binclspsql -h127.0.0.1 -Uadmanager -p33306 -dadsm
    

    默認情況下數據庫配置信息位于`database_params.conf`:

    利用上面的配置信息,成功連接數據庫:

    合法API URL分析

    查看`web.xml`,找到一個名為`FWServletAPI`的`servlet`:

    同時定義了多個針對全部URL請求的過濾器,比如`ADSFilter`:

    我們隨意構造一個URL請求:

    http://***:8080/RestAPI/WC/NotificationTemplate/test
    

    在`ADSFilter#doFilter`打下斷點:

    進入`doSubFilters`:

    經過一系列參數提取和身份認證驗證后,第136行調用函數`RestAPIUtil.isRestAPIRequest`來驗證URL:

    然后調用`RestAPIFilter.doAction`:

    第61行通過`RestAPIUtil.getAPIDetails`來獲取API接口的信息,跟進:

    發現這里是從數據庫中來尋找合法的API URL規則:

    一共有607個合法URL規則:

    尋找`/RestAPI/WC/NotificationTemplate/*`合法的URL列表,共計13個:

    /RestAPI/WC/NotificationTemplate/getDefaults/RestAPI/WC/NotificationTemplate/getTemplate/RestAPI/WC/NotificationTemplate/saveTemplate/RestAPI/WC/NotificationTemplate/deleteTemplates/RestAPI/WC/NotificationTemplate/copySettings/RestAPI/WC/NotificationTemplate/attachFiles/RestAPI/WC/NotificationTemplate/removeFileAttachment/RestAPI/WC/NotificationTemplate/getShareSettings/RestAPI/WC/NotificationTemplate/saveShareSettings/RestAPI/WC/NotificationTemplate/getShareableUsers/RestAPI/WC/NotificationTemplate/getModuleDetails/RestAPI/WC/NotificationTemplate/getTemplates/RestAPI/WC/NotificationTemplate/addRemoveColumns
    

    相關定義位于文件`ADSProductAPIs_OMP.xml`:

    文件上傳

    既然漏洞與文件上傳有關,重點關注名為`attachFiles`的URL,替換HTTP請求為:

    /RestAPI/WC/NotificationTemplate/attachFiles
    

    定位函數`attachFiles`:

    提取請求的相關參數后沒有進行任何檢查,直接將上傳的文件內容進行寫入操作。構造如下請求:

    直接GetShell:

    修復方式

    v7111版本中函數`attachFiles`中增加了對文件后綴名的判斷:

    文件后綴名判定通過新增的`FileUtil.validateImageFileExtension`函數完成:

    將文件類型限制為:

    public static final String DEFAULT_IMAGE_EXTENSION[] = {    "jpg", "png", "gif", "jpeg", "tiff", "pjp", "pjpeg", "jfif", "tif", "svg",     "bmp", "svgz", "webp", "ico", "xbm", "dib"};
    

    寫在最后

    通過補丁對比發現還存在多處文件上傳漏洞的修復,比如`com.manageengine.ads.fw.ssl.SSLAPI#addNewCertificate`:


    同樣對文件后綴進行了過濾,通過研究發現這個觸發點是對壓縮包進行解壓,但是沒有對文件后綴進行檢查,可以實現任意文件上傳,但是在處理完壓縮包后,程序會自動刪除文件,但是存在條件競爭的問題,仍可GetShell。

    再比如`com.manageengine.ads.fw.sso.ADSSAMLAPI#saveSAMLConfig`:

    也是增加后綴名檢查,還有一些其他點在原理上也是相同的,這里就不一一贅述了,有興趣的小伙伴可自行研究。

    文件上傳zoho
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Zoho ManageEngine Admanager Plus 任意文件上傳漏洞可GetShell。
    ZOHO ManageEngine ServiceDesk Plus(SDP)是美國卓豪(ZOHO)公司的一套基于 ITIL 架構的 IT 軟件。該軟件集成了事件管理、問題管理、資產管理IT項目管理、采購與合同管理等功能模塊。 使用該系統的國家以國外為主,比如 fofa 的查詢結果:
    一、境外廠商產品漏洞 1、Oracle MySQL Server拒絕服務漏洞(CNVD-2021-54386)
    近日,ZOHO已發布安全公告,修復了ManageEngine ServiceDesk Plus存在跨站腳本和遠程命令執行漏洞。建議受影響用戶及時升級安全版本進行防護,并做好資產自查以及預防工作,以免遭受黑客攻擊。
    360漏洞云監測到安全研究人員近日公開了ManageEngine ServiceDesk Plus中的一個“從存儲型跨站腳本到遠程代碼執行”的漏洞利用鏈的技術細節。
    Fuxploider是一種開源滲透測試工具,可自動檢測和利用文件上傳表單缺陷的過程。該工具能夠檢測允許上傳的文件類型,并能夠檢測哪種技術最適合在所需的Web服務器上上傳Web Shell或任何惡意文件
    文件上傳前端JS 防護,通過抓包修改,或插件js禁用來繞過。后端黑名單上傳陌生后綴 .php3 php5上傳配置文件 .htaccess通過 雙寫 ,大小寫,基于windows 特性
    此時通過對Content-Type進行修改,可能會繞過waf。其他的http頭添加刪除等也是類似。檢測到上傳jsp文件,任意內容都會被攔截。先來fuzz一波能利用的后綴名,這里可以包括中間件的一些配置文件。希望不大,一點都不出意外,全部被攔截了。因為最終還是需要免殺馬的,jsp免殺又不會,先不考慮這個,先考慮把waf繞過。fuzz本來就是一個天馬行空的過程,好了,繼續來看。
    文件上傳數據包解析 文件上傳實質上還是客戶端的POST請求,消息主體是一些上傳信息。前端上傳頁面需要指定 enctype為multipart/from-data才能正常上傳文件。 一個正常的文件上傳數據包大致如下:
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类