中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何進行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

盱眙县| 梧州市| 鲁山县| 秦安县| 禄劝| 东台市| 额敏县| 炎陵县| 丰宁| 咸阳市| 报价| 沈丘县| 梁河县| 乌拉特后旗| 横山县| 白山市| 龙井市| 财经| 德兴市| 郴州市| 资溪县| 巫山县| 孟州市| 来安县| 屏南县| 兴国县| 清徐县| 手游| 长沙县| 肇州县| 庄浪县| 呈贡县| 宁化县| 基隆市| 临高县| 金阳县| 正蓝旗| 宜良县| 建平县| 蒙山县| 孝昌县|