91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Drupal SA-CORE遠程命令的執行分析

發布時間:2021-11-11 18:23:43 來源:億速云 閱讀:110 作者:柒染 欄目:安全技術

這篇文章給大家介紹Drupal SA-CORE遠程命令的執行分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、漏洞背景

2月20日Drupal官方披露了一個Drupal的遠程命令執行漏洞:

https://www.drupal.org/sa-core-2019-003

漏洞的觸發條件為開啟了RESTful Web Services,且允許POST/PATCH請求。

根據Drupal的配置,此漏洞可能不需要任何權限即可觸發,但普適性不高。一旦該漏洞被利用,攻擊者則可以直接在Web服務器上執行任意PHP代碼,造成服務器被入侵、用戶信息泄露等后果。

騰訊云不受該漏洞影響,此漏洞爆發后,騰訊云安全團隊第一時間進行跟蹤分析,且對云上客戶進行預警通知。

二、漏洞定位

漏洞通告指出了Drupal 8在開啟了RESTful Web Services模塊,同時允許了PATCH/POST方法請求后,可以造成代碼執行漏洞。

根據commit log( https://github.com/drupal/core/commit/24b3fae89eab2b3951f17f80a02e19d9a24750f5 )可以定位到漏洞的觸發原因在于反序列化的操作:

Drupal SA-CORE遠程命令的執行分析

可以推測應該是在進行REST API操作的過程中,options參數的內容帶入到unserialize函數導致的。通過diff可以發現LinkItem.php和MapItem.php都受到影響,這里從LinkItem來向上挖掘漏洞點。

查看core\modules\link\src\Plugin\Field\FieldType\LinkItem.php  :

Drupal SA-CORE遠程命令的執行分析 梳理了其整個調用鏈,從REST請求開始,先通過用戶傳入的JSON的_links.type獲取了其對應的Entity,再獲取Entity內的Fields列表,遍歷這個列表得到key,從用戶傳入的JSON內取出key,拼接成為field_item:key的形式(過程略),最終在getDefinition內查找了definitions數組內的字段定義,得到一個對應的Field的實例對象,過程大體如下:            
           

Drupal SA-CORE遠程命令的執行分析 接著FieldNormalizer的denormalize方法調用了Field的setValue方法。    
         

Drupal SA-CORE遠程命令的執行分析      

也就是說,我們如果可以將$field_item控制為LinkItem或者MapItem,即可觸發反序列化。

三、觸發點構造

我們在Drupal后臺配置好RESTful Web Service插件,選擇一個可以進行POST的操作。

為了盡可能模擬網站管理員的配置,我們這里允許對于/user/register的POST操作。

于情于理,用戶注冊處必然可以作為匿名用戶來進行操作。開啟/user/register:

Drupal SA-CORE遠程命令的執行分析 設置允許匿名用戶利用POST來訪問/user/register:
       

Drupal SA-CORE遠程命令的執行分析 上文中提到,我們需要一個Entity內存在LinkItem Field。通過對Entity的查找,定位到MenuLinkContent和Shortcut使用了LinkItem,利用Shortcut來進行進一步的測試。    
         

Drupal SA-CORE遠程命令的執行分析      

Shortcut的_links.type為:http://127.0.0.1/rest/type/shortcut/default。

向/user/register發送POST請求,同時在PHPStorm內將斷點下在core\modules\hal\src\Normalizer\FieldItemNormalizer.php的denormalize函數:

Drupal SA-CORE遠程命令的執行分析 可以發現,在調用setValue方法的現場,$field_item為LinkItem。跟入setValue方法(圖 2),根據邏輯,如果$values為一個數組。且$values['options']存在,那么就執行反序列化操作。我們修改payload為即可觸發反序列化。            
           

Drupal SA-CORE遠程命令的執行分析  

驗證視頻:

攻擊者利用此反序列化可以在服務器上執行任意代碼,利用此漏洞在服務器上彈出計算器的視頻如下:

Drupal SA-CORE遠程命令的執行分析

四、安全建議

修復方案如下:

1.Drupal 8.6.x版本升級到8.6.10版本;

2.Drupal 8.5.x或更早期版本版本升級到8.5.11版本;

3.Drupal 7暫無更新。

緩解措施如下:

1.禁用RESTful Web Services模塊;

2.配置服務器不允許POST/PATCH請求。

關于Drupal SA-CORE遠程命令的執行分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

皮山县| 武陟县| 浪卡子县| 苏尼特右旗| 无棣县| 鄂托克旗| 天门市| 麻江县| 南昌市| 东丽区| 滁州市| 梁河县| 凌源市| 迁西县| 孟州市| 叙永县| 南郑县| 饶阳县| 桦甸市| 古交市| 涿鹿县| 海城市| 镇沅| 宁强县| 岳池县| 慈溪市| 丹阳市| 应用必备| 宁蒗| 宜州市| 勃利县| 岫岩| 从化市| 涿鹿县| 阿瓦提县| 荣成市| 治多县| 岳阳县| 平山县| 微山县| 威远县|