Struts2-057遠程代碼執行漏洞2018

 Apache Struts是美國阿帕奇(Apache)軟件基金會負責維護的一個開源項目,是一套用於創建企業級Java Web 應用的開源MVC框架,主要提供兩個版本框架產品:   Struts 1和Struts 2。 Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作爲控制器(Controller)來建立模型與視圖的數據交互。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。

0x01 漏洞描述

       Apache wiki更新了一個Struts2的遠程代碼執行漏洞(S2-057),漏洞威脅等級爲高危,漏洞對應的CVE編號爲CVE-2018-11776。Apache wiki鏈接:https://cwiki.apache.org/confluence/display/WW/S2-057

        定義XML配置時如果沒有設置namespace的值,並且上層動作配置中並沒有設置或使用通配符namespace時,可能會導致遠程代碼執行漏洞的發生。同樣也可能因爲url標籤沒有設置value和action的值,並且上層動作並沒有設置或使用通配符namespace,從而導致遠程代碼執行漏洞的發生。

     據統計,Struts2 全球共有281021個對外開放,使用最多的國家是美國,共有78459個;中國第二65216;韓國第三,共有52421個;愛爾蘭第四,共有12944個;烏拉圭第五,共有12927 個。中國地區中北京市最多,共有15471個;浙江省第二,共有15249個;廣東省第三,共有5159個;上海市第四,共有3564個;江蘇省第五,共有3292 個。

02 漏洞驗證

本地驗證:https://github.com/ym2011/POC-EXP/tree/master/Struts2/S2-057

在線驗證:http://0day.websaas.com.cn/

詳細驗證:https://lgtm.com/blog/apache_struts_CVE-2018-11776

環境搭建:https://downloads.lgtm.com/snapshots/java/apache/struts/apache-struts-7fd1622-CVE-2018-11776.zip

03 影響版本

Struts 2.3 - Struts 2.3.34

Struts 2.5 - Struts 2.5.16

其他一些不受支持的Struts版本

04 修復建議

         官方提供的臨時解決方案:當上層動作配置中沒有設置或使用通配符namespace時,驗證所有XML配置中的namespace,同時在JSP中驗證所有url標籤的value和action。

    目前Apache官方發佈新版本(2.3.35或2.5.17版本)中修復了該漏洞,建議更新,下載地址http://archive.apache.org/dist/struts/

歡迎大家分享更好的思路,熱切期待^^_^^ !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章