黑客大神:2020HW熱門0day分析與復現

黑客大神:2020HW熱門0day分析與復現

前記

隨著8.17護網的開始,這期間各大廠商接連爆出了重大0day,引發了種種安全事故與遐想,本文筆者將從代碼審計的角度深入淺出的對這些漏洞進行分析與復現,文內會提供部分exp鏈接,希望能對大家有所幫助!

深信服EDR漏洞分析

RCE getshell

如果說最近爆出的0day當中最為人熟知的莫過於最先爆出的深信服EDR的0day了,只需要憑藉著簡單的復現條件就可以對漏洞加以利用,那麼我們下面來分析一下深信服EDR的幾個比較高危的漏洞吧。

首先從廣為人知的c.php開始說起,這個漏洞的復現條件極為簡單,只需要訪問/tool/log/c.php然後使用get提交傳入變量即可,利用exp如下:

http://ip/tool/log/c.php?strip_slashes=system&host=id

下面我們看一下他的代碼

黑客大神:2020HW熱門0day分析與復現

查看c.php程序入口,可以看到調用了show_form函數,並且利用REQUEST的方式傳參,然後我們跟進這個函數。

黑客大神:2020HW熱門0day分析與復現

從箭頭處我們可以看到這裡調用了extract函數,繼續往下看到三元運算符其中變量strip_slashes指向了一個函數,如下圖:

黑客大神:2020HW熱門0day分析與復現

這個函數大概就是檢查有沒有開啟gpc功能,如果沒有開啟則直接return返回值如果開啟了就是用stripslashes函數進行轉義。????相信屏幕前的你也一堆問號,神奇的邏輯。

言歸正題,回到show_form這裡,那麼我們是不是就可以通過覆蓋掉strip_slashes以及host變量來getshell了呢?覆蓋後的變量大概就是

strip_slashes=system&host=id

組合起來也就變成了system(id)從而執行了命令呢?

真•後門

如果上面那個漏洞我們原諒了開發,那麼下面這個漏洞一定會讓你若有所思!我們直接來看一下代碼吧!

黑客大神:2020HW熱門0day分析與復現

我想可能刷過靶場的小夥伴對這串代碼都不陌生,沒錯這不就是簡單難度的變量覆蓋漏洞嗎?還是能執行命令那種,至於利用方法也是非常簡單!

http://ip/php_cli.php?code=system("whoami");

神奇備份

這個也沒有什麼可說的直接上圖吧!

黑客大神:2020HW熱門0day分析與復現

就在/tool/log目錄下

黑客大神:2020HW熱門0day分析與復現

越權登陸

這裡的越權登陸通過在前臺登陸頁面login.php界面進行傳參提交用戶名可越權至終端後臺,利用payload如下:

http://ip/ui/login.php?user=admin

迷惑驗證碼

我們分析/tool/log/l.php代碼,作為和c.php在同一目錄的好兄弟沒有點能耐好意思在這個目錄呆?代碼如下圖:

黑客大神:2020HW熱門0day分析與復現

在這個main函數中,我們首先步進到ldb_run_at_console函數中。

黑客大神:2020HW熱門0day分析與復現

可以看到這個函數設置了一個全局變量,最後return時驗證是否設置該變量,返回然後true或者false,當然因為沒有設置這個變量那麼一定就是false,然後看第一張圖,也就滿足了第一層if的條件,然後繼續往下看第二層,如果沒有設置captcha變量或者captcha的值不等於10899801則返回驗證碼錯誤。

那麼我們可以看到他是直接通過REQUEST的方式接收值,既然我們可以控制變量那麼直接構建payload即可。

http://ip/l.php?captcha=10899801

權限繞過

同樣也有表哥挖到了權限繞過漏洞,通過修改Y-Forwarded-For的值為空以及其默認沒有配置文件導致變量值為空在比較時可以越權獲取特權,下面我貼一下文章地址:

https://mp.weixin.qq.com/s/4Z4QF-Wdq2PhqCkGKB8Q6Q

深信服小結

深信服EDR所有的漏洞當然不止以上幾個,在tool目錄下幾乎無一例外的都有變量覆蓋漏洞,也希望相關開發人員能夠重視安全開發規範,我認為漏洞產生的原因就是開發沒有做到數據與代碼分離從而致使可以控制變量並加以利用,現在大部分漏洞已經有了相應的解決方案。大部分的EDR已經刪除了tool目錄,並且也發佈了相應的補丁,雖然發補丁時順道把源碼洩露了,EXP已經上傳至github有興趣的小夥伴可以自行下載。

https://github.com/wikiZ/-EDR-EXP

寶塔越權漏洞

這個漏洞於8月23日上午公開,寶塔官方於晚上8點發布短信緊急修復公告,漏洞通過訪問指定url可以直接越權利用,影響近9W餘臺服務器,利用payload如下:

http://ip:888/pma

通過訪問以上url可以直接越權至phpmyadmin後臺,也有許多娛樂圈黑客利用此漏洞四處破壞,造成了嚴重的社會影響,更有甚者在gov站點上掛黑頁。
該漏洞主要影響版本有:
寶塔linux面板 7.4.2
寶塔windows面板6.8

修復方案:
1、升級寶塔面板至最新版本7.4.3,在面板內即可升級。
2、關閉888端口。

黑客大神:2020HW熱門0day分析與復現

EXP地址:https://github.com/wikiZ/pagota

通達OA RCE漏洞

說到通達OA,它最近爆出的漏洞可真的不要太多了,就在幾個月之前也爆出過RCE getshell漏洞,那時候我也寫出了EXP並進行分析。這一次爆出的RCE同樣是auth身份驗證文件的問題,但卻不是他的鍋。下面我們來對代碼進行審計吧!

漏洞影響版本:
通達OA < v11.7

首先漏洞的關鍵產生原因就是文件刪除漏洞,攻擊者通過該漏洞刪除了auth身份驗證文件,導致驗證失效從而進行任意文件上傳,任意文件刪除漏洞產生位置在:

/module/appbuilder/assets/print.php

我們來看一下它的源碼
P.S.注意通達OA的源碼是加密的需要使用seayDZend工具解密後即可正常閱讀源碼

黑客大神:2020HW熱門0day分析與復現

在上圖代碼中我們可以看到用戶可以通過GET方式控制變量guid,然後下面對文件是否存在進行檢測,如果存在則會調用unlink函數進行刪除文件,s_tmp變量這裡拼接了guid變量,所以這裡我們就可以通過guid參數進行目錄穿越從而進行任意文件刪除,PAYLOAD如下:
http://ip/module/appbuilder/assets/print.phpguid=../../../webroot/inc/auth.inc.php

注意在測試時進行備份,刪除了auth.inc.php可能導致部分功能不可用。
刪除了auth.inc.php文件,我們繼續分析文件上傳點的源碼,漏洞發生位置為:

/general/data_center/utils/upload.php

黑客大神:2020HW熱門0day分析與復現

首先傳入參數action=upload進入,然後傳入不存在的filetype這裡可以任意取值,最後傳入repkid參數值為/.<>./.<>./.<>./ 逃逸file_exits函數。數據包中構建上傳文件操作,上傳文件參數名為FILE1。
這裡的逃逸操作,使其進入if條件中拷貝文件至網站根目錄。

黑客大神:2020HW熱門0day分析與復現

最後直接訪問http://ip/_filename.php即可。
數據包如下圖:

黑客大神:2020HW熱門0day分析與復現

通達OA漏洞小結

修復方式:
更新至最新版本v11.7即可。
更新地址:https://www.tongda2000.com/download/sp2019.php

EXP地址:https://github.com/wikiZ/tongda-deleteRCE

後記

至此本文就結束了,後期會不斷更新最新的EXP及漏洞分析文章,希望讀過本文後能夠對您有所收穫!P.S.審核大哥多評點吧,我想吃個飽飯!

最後祝大家心想事成,美夢成真!

本文由風起原創發佈
轉載,請參考轉載聲明,註明出處: https://www.anquanke.com/post/id/215347


分享到:


相關文章: