版本下载
最近struts 2爆了一些很厉害的漏洞,于是乎就趋之若鹜的来分析一下。
首先因为是struts 2的漏洞,首先需要struts 2的各个版本来分析一下,这里有各种版本的下载,当然GitHub上面也会有
http://people.apache.org/builds/struts/
Struts结构
把里面的例子在tomcat里部署一下,就可以测试了。简单说一下struts 2的结构。struts 2的安装是在web.xml里添加这样的一句,将Struts2所带的过滤器org.apache.struts2.dispatcher.FilterDispatcher配置到工程的web.xml文件中,默认情况下,该过滤器拦截请求字符串中以.action结尾的请求,并将该请求委托给指定的Action进行处理
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
关于action的定义是在struts.xml中,其中<default-action-ref>是所有action都捕获不到时的选项。
<result type="redirectAction">的作用是捕获到该action重定向到其他页面。
最后include了另外一个XML
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>