最新消息:图 床

S2-052漏洞分析及官方緩解措施無效驗證

COOL IAM 69浏览 0评论

作者:廖新喜

綜述

2017年9月5日,Apache Struts 發布最新的安全公告,Apache Struts 2.5.x 和 2.3.x 的 REST 插件存在遠程代碼執行的高危漏洞,漏洞編號為 CVE-2017-9805(S2-052)。漏洞的成因是由於使用 XStreamHandler 反序列化 XStream 實例的時候沒有任何類型過濾導致遠程代碼執行。

相關鏈接如下:
https://cwiki.apache.org/confluence/display/WW/S2-052

影響版本:
Struts 2.1.2 – Struts 2.3.33, Struts 2.5 – Struts 2.5.12

規避方案:
立即升級到Struts 2.5.13 or Struts 2.3.34

技術分析

根據官方的描述信息來看,是 REST 插件使用到 XStreamHandler 處理 xml 數據的時候,由於未對 xml 數據做任何過濾,在進行反序列將 xml 數據轉換成 Object 時導致的 RCE。

0x01 環境搭建

官方地址下載所有源碼包,找到其中的 struts2-rest-showcase.war 直接部署到 tomcat 就行,當然我更喜歡手動編譯,直接通過 Maven 編譯即可。具體的部署過程這裡就不詳細描述,不過有點是需要注意的,由於 javax.imageio 的依賴關係,我們的環境的 jdk 版本需要是 jdk8 以上,jdk8 某些低版本也是不行的,本文作者的版本是 jdk8_102,後續的一些驗證都是在這個版本上做的。

0x02 補丁分析

環境搭建好了之後,首先我們來看下 rest 插件的相關配置

在官方的修復方案中,主要就是將 xml 中的數據白名單化,把 Collection 和 Map,一些基礎類,時間類放在白名單中,這樣就能阻止 XStream 反序列化的過程中帶入一些有害類。

转载请注明:IAMCOOL » S2-052漏洞分析及官方緩解措施無效驗證

0 0 vote
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x