电子游戏厅

  • <ruby id="yraxc"><i id="yraxc"></i></ruby>
    <acronym id="yraxc"></acronym>

    <optgroup id="yraxc"></optgroup>
    首頁 > 關于安博通 > 新聞中心
    【漏洞分析】通達OA 11.6版文件上傳getshell漏洞
    2020-09-16
    48

    一、漏洞概述


    通達OA(Office Anywhere網絡智能辦公系統)是由北京通達信科科技有限公司自主研發的協同辦公自動化軟件。


    安博通研究發現,通達OA 11.6版中引入了新的任意文件刪除漏洞,與早期版本的文件上傳漏洞、變量覆蓋漏洞結合,可直接getshell。


    安博通提醒通達OA用戶盡快確認軟件版本,并采取積極措施應對漏洞攻擊。


    二、影響范圍


    通達OA 11.6版


    三、修復建議


    升級通達OA至11.7版。

     

    同時,官方已發布相應的安全加固程序,可以根據當前版本選擇對應程序文件。運行前請先做好備份。

     

    四、漏洞分析

     

    文件上傳getshell漏洞的利用需借助三個漏洞配合使用,下面進行逐個分析:

     

    1、任意文件刪除漏洞

     

    該漏洞位于11.6版的新增文件module/appbuilder/assets/print.php中。(注:該文件在11.5版中不存在,如想使用11.5版進行驗證,請單獨下載文件。

     

    該文件中未添加任何校驗,可直接訪問利用,進行文件刪除操作。

     

    源碼如下:

     

    1.jpg

     

    通過拼接參數s_tmp指定刪除文件,參數s_tmp由固定部分+guid組成,其中參數guid可控,因此通過該文件可刪除任意文件。

     

    傳入guid=../../../webroot/xx.php,則$s_tmp的拼接路徑為

    web_root/module/appbuilder/assets/../../../../logs/appbuikder/logs/../../../webroot/xx.php,成功執行后會將xx.php文件刪除。

     

    2、變量覆蓋漏洞

     

    該漏洞為通達OA的長期漏洞,在多個版本中均存在。

     

    漏洞位于文件 inc/common.inc.php 中。

     

    源碼如下:

     

    2.jpg

     

    利用該漏洞不僅可以進行任意變量覆蓋,還可以利用代碼中的strip_tags函數向參數中加入HTML、PHP標簽干擾。

     

    關于strip_tags函數的詳細說明可參考鏈接:

    https://www.php.net/manual/zh/function.strip-tags.php

     

    利用該漏洞可以控制整個系統中的未初始化變量。

     

    3、任意文件上傳漏洞

     

    該漏洞位于文件 general/data_center/utils/upload.php 中。(注:版本<11.7版均存在該漏洞。

     

    源碼如下:

     

    3.jpg

     

    通過控制變量使代碼直接走最后的else分支,此時變量repkid未重新賦值就直接使用,最終文件名通過拼接變量repkid與文件名s_n獲得。利用上文的任意變量覆蓋漏洞控制變量repkid,可以確保生成的文件位于attachment目錄之外,同時利用方式可加入繞過

    general/data_center/utils/upload.php?action=upload&filetype=nmsl&repkid=/.<>./.<>./.<>./,實際獲得的repkid參數內容為/../../../,因此拼接后的文件名為webroot下的_文件名。

     

    五、相關鏈接

     

    https://www.tongda2000.com/

    电子游戏厅