亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Struts2 S2-057漏洞環境搭建及漏洞分析

發布時間:2021-12-10 19:09:58 來源:億速云 閱讀:350 作者:柒染 欄目:網絡管理

本篇文章給大家分享的是有關如何進行Struts2 S2-057漏洞環境搭建及漏洞分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

漏洞原因

官方對這次漏洞的描述是:
1.定義XML配置時如果namespace值未設置且上層動作配置(Action Configuration)中未設置或用通配符namespace時可能會導致遠程代碼執行。
2.url標簽未設置value和action值且上層動作未設置或用通配符namespace時可能會導致遠程代碼執行。
具體分析可參考:
https://www.freebuf.com/vuls/182006.html

調試環境搭建

1)下載官方源碼:
git clone https://github.com/apache/Struts.git
2)切換到2.5.12分支:
git checkout STRUTS_2_5_10
3) 把源碼包中src/apps/showcase整個文件夾拷貝出來,新建一個項目
4)用IDEA或者eclipse導入該maven項目
5)修改src/main/resoureces中的配置文件struts-actionchaining.xml,改成:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
	
<struts><package name="actionchaining" extends="struts-default"><action name="actionChain1" class="org.apache.struts2.showcase.actionchaining.ActionChain1"><result type="redirectAction"><param name = "actionName">register2</param></result></action></package>
</struts>

訪問http://localhost:8080/struts2-showcase/%24{1+2}/actionChain1.action
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析

url重新redirect到:http://localhost:8080/struts2-showcase/3/register2.action
并對location中的1+2進行了計算,產生了ognl注入

漏洞分析

首先,strut2中對默認result對象的處理過程。這些默認result type都要經過 com/opensymphony/xwork2/DefaultActionInvocation.java處理
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析
會調用這個具體result對象(redirectAction)的excute方法。
注意到struts-actionchaining.xml配置文件中,<result>標簽的type是redirectAction,所以對應地找出redirectAction的處理類:org.apache.struts2.result.ServletActionRedirectResult,并且在execute方法處下斷點
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析
發送請求:http://localhost:8080/struts2-showcase/%24{1+2}/actionChain1.action
程序跳到斷點處,往下執行后,由于在配置xml時沒有指定namespace,所以這里的namespace為null,則對namespace重新賦值為/${1+2} 

如何進行Struts2 S2-057漏洞環境搭建及漏洞分析

最終將location設置為/${1+2}/register2.action
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析
在 super.execute(invocation)處繼續f5進入函數內,最終跟蹤到StrutsResultSupport的execute方法
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析
這邊的location值為/${1+2}/register2.action,最終對ognl表達式執行后得到/3/register2.action
如何進行Struts2 S2-057漏洞環境搭建及漏洞分析
至此,ognl表達式成功執行。

防御

將框架版本升級到官方最新版本

以上就是如何進行Struts2 S2-057漏洞環境搭建及漏洞分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗阳县| 蛟河市| 嘉黎县| 秦皇岛市| 庄河市| 时尚| 兴仁县| 社旗县| 乌拉特后旗| 古浪县| 孝感市| 五家渠市| 谷城县| 镇巴县| 开封县| 晋州市| 山东省| 师宗县| 高清| 绥芬河市| 高陵县| 渭源县| 青冈县| 兖州市| 古蔺县| 桂阳县| 鄄城县| 定襄县| 兴隆县| 华坪县| 德阳市| 上高县| 彰武县| 板桥市| 临湘市| 杨浦区| 兴文县| 无锡市| 同仁县| 杭锦后旗| 侯马市|