99久久国产综合精品国_亚洲av日韩aⅴ电影_午夜福利在线电影_亚洲aⅤ色欲久久一区二区三区_91九色蝌蚪国产精品_亚洲av无码乱码在线观看四虎_4国产精品无码制服丝袜_亚洲Av成人五月天在线观看_牛牛成人永久免费视频_午夜福利在线资源


【漏洞通告】spring-messaging遠程代碼執(zhí)行漏洞分析預警(CVE-2018-1270)

漏洞概述

2018年4月5日,Pivotal Spring官方發(fā)布安全公告,Spring框架中存在三個漏洞,其中編號為CVE-2018-1270的漏洞可導致遠程代碼執(zhí)行。通過對此漏洞進行了相關分析,認為漏洞影響嚴重;目前相關PoC已經被發(fā)布,建議相關用戶盡快進行評估升級。

 

漏洞影響面

影響版本

Spring Framework 5.0 to 5.0.4.

Spring Framework 4.3 to 4.3.14

已不支持的舊版本仍然受影響
修復版本

5.0.x 用戶升級到5.0.5版本

4.3.x 用戶升級到4.3.15版本

 

漏洞詳情

CVE-2018-1270

Spring框架中通過spring-messaging模塊來實現STOMP(Simple Text-Orientated Messaging Protocol),STOMP是一種封裝WebSocket的簡單消息協(xié)議。攻擊者可以通過建立WebSocket連接并發(fā)送一條消息造成遠程代碼執(zhí)行。如果使用了Spring Security項目中的權限認證,可以在一定程度上增加漏洞利用難度。

 

CVE-2018-1271

當Spring MVC的靜態(tài)資源存放在Windows系統(tǒng)上時,攻擊可以通過構造特殊URL導致目錄遍歷漏洞。

此漏洞觸發(fā)條件較高:

Server運行于Windows系統(tǒng)上

從文件系統(tǒng)提供的文件服務(比如使用file協(xié)議,但不是file open)

沒有使用CVE-2018-1199漏洞的補丁

不使用Tomcat或者是WildFly做Server

 

CVE-2018-1272

在Spring MVC或者WebFlux應用把客戶端請求再轉向另一臺服務器的場景下,攻擊者通過構造和污染Multipart類型請求,可能對另一臺服務器實現權限提升攻擊。

 

CVE-2018-1270漏洞分析

SpEL

Spring表達式語言全稱Spring Expression Language,支持查詢和操作運行時對象導航圖功能.。語法類似于傳統(tǒng)EL,而且供額外的功能,能夠進行函數調用和簡單字符串的模板函數。

SpEL用法

String expression = “T(java.lang.Runtime).getRuntime().exec(/”calc/”)”;

String result = parser.parseExpression(expression).getValue().toString();

漏洞觸發(fā)流程

搭建spring-message 項目demo

其中靜態(tài)資源app.js運行在客戶端與服務器做websocket交互,使用connect()函數建立Stomp鏈接

function connect() {

var socket = new SockJS(‘/gs-guide-websocket’);

stompClient = Stomp.over(socket);

stompClient.connect({}, function (frame) {

setConnected(true);

console.log(‘Connected: ‘ + frame);

stompClient.subscribe(‘/topic/greetings’, function (greeting) {

showGreeting(JSON.parse(greeting.body).content);

});

});

}

Step1

增加一個header頭部,添加selector項,value為payload,Stomp協(xié)議規(guī)范中通過指定selector對訂閱的信息進行過濾

Web應用在handleMessageInternal對消息進行處理,注冊訂閱者registerSubscription,最后調用DefaultSubscriptionRegistry函數對header參數進行處理,對selector值進行了解析,并將其保存至這次會話中。

Step2

點擊send向服務器發(fā)送任意消息。Spring 在向訂閱者分發(fā)消息時會調用filterSubscription對消息進行過濾,會執(zhí)行expression.getValue(context, Boolean.class)造成任意命令執(zhí)行

補丁分析

補丁地址

-import org.springframework.expression.spel.support.StandardEvaluationContext;

+import org.springframework.expression.spel.support.SimpleEvaluationContext;

刪除了StandardEvaluationContext引用,采用了SimpleEvaluationContext,StandardEvaluationContext可以執(zhí)行任意SpEL表達式,Spring官方在5.0.5之后換用SimpleEvaluationContext,用于實現簡單的數據綁定,保持靈活性減少安全隱患

SimpleEvaluationContext地址

StandardEvaluationContext地址

 

參考鏈接

  1. https://xz.aliyun.com/t/2252
  2. https://pivotal.io/security/cve-2018-1270
  3. https://pivotal.io/security
上一篇
下一篇

聯(lián)系我們:cert@chaosec.com