成人激色综合天天,中文亚洲av片在线观看,又粗又大又硬毛片免费看,国产aⅴ精品一区二区三区久久,亚洲欧美自偷自拍视频图片

【漏洞分析】Struts2高危漏洞S2-048分析

CIOAge
Struts2高危漏洞S2-048分析

[[196467]]


本次漏洞觸發(fā)點在:

org.apache.struts2.s1.Struts1Action.execute() 方法中,如下圖所示。

http://p5.qhimg.com/t01eedf939f4b2b3670.png

org.apache.struts2.s1.Struts1Action 類為一個 Wrapper 類,用于將 Struts1 時代的 Action 包裝成為 Struts2 中的 Action,以讓它們在 struts2 框架中繼續(xù)工作。
 

在 Struts1Action 的 execute 方法中,會調(diào)用對應的 Struts1 Action 的 execute 方法(***個紅色箭頭處)。在調(diào)用完后,會檢查 request 中是否設置了 ActionMessage,如果是,則將會對 action messages 進行處理并回顯給客戶端。處理時使用了 getText 方法,這里就是漏洞的觸發(fā)點。所以漏洞的觸發(fā)條件是:在 struts1 action 中,將來自客戶端的參數(shù)值設置到了 action message 中。

在官方提供的 Showcase 中,就存在漏洞,如下圖:

 http://p0.qhimg.com/t01b70b1741ca58d61c.png

getText 方法的主要作用就是實現(xiàn)網(wǎng)站語言的國際化,它會根據(jù)不同的 Locale 去對應的資源文件里面獲取相關文字信息(這些文件信息一般保存在 .properties 文件中),這些文字信息往往會回顯至客戶端。

Action messages 會通過 getText 方法最終進入 com.opensymphony.xwork2.util.LocalizedTextUtil.getDefaultMessage(String, Locale, ValueStack, Object[], String) 方法,如下:

http://p7.qhimg.com/t0135e5e8fdaa871d13.png


 

此方法會將 action message 傳入 com.opensymphony.xwork2.util.TextParseUtil.translateVariables(String, ValueStack)。com.opensymphony.xwork2.util.TextParseUtil.translateVariables(String, ValueStack) 方法主要用于擴展字符串中由 ${} 或 %{} 包裹的 OGNL 表達式,這里也就是 OGNL 的入口,隨后 action message 將進入 OGNL 的處理流程,漏洞被觸發(fā)。


 

關于 POC

 


1
暫不公布


 

總結(jié)

 


該漏洞觸發(fā)需要非默認插件 struts2-struts1-plugin
 

需要手動尋找程序中將客戶端參數(shù)值添加入 action message 的點

責任編輯:吳金澤 來源: 安全客
相關推薦

2017-07-14 13:51:19

2013-07-18 15:09:27

2017-07-17 11:00:53

2016-04-29 10:58:13

2013-07-19 09:36:04

struts2struts2漏洞

2013-07-18 15:57:42

2012-12-18 16:18:06

2013-07-18 13:11:07

2016-06-08 10:09:24

2017-03-08 22:23:02

2013-07-22 10:45:56

2013-07-18 10:06:54

2016-03-22 12:37:45

Struts2Struts2漏洞漏洞檢測

2013-05-22 10:28:19

2013-07-24 10:35:02

2017-09-12 07:54:32

2012-12-18 16:38:26

2013-07-24 14:06:48

2017-03-07 10:34:40

Struts2Struts2漏洞

2009-06-08 16:44:00

struts2 ogn

51CTO技術棧公眾號