由struts错误使用引发的漏洞,使用参数作为返回的文件路径或文件名,作为返回result 值

该错误可以导致他人任意访问该路径下的任何文件。

struts 文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="help" extends="common">
        <action name="help" class="com.web.help.HelpAction">
            <result name="success">/WEB-INF/jsp/common/${help}.jsp</result>
        </action>
    </package>
</struts>
                                                                        

其中help 为 action 属性,
public class HelpAction  {
    private String help;
   /**
     * 用户添加反馈意见
     * @return
     */
    public String addUserOpinion(){return SUCCESS;
    }
}

导致用户变换help 的值即可访问
/WEB-INF/jsp/common/的所用文件。
通过"../"向上跨目录读取 WEB-INF 下所有配置文件内容。
如链接访问 /help/help!addUserOpinion?help=aa 即可访问该路径下的aa.jsp文件
或者/help/help!addUserOpinion?help=../../web.xml?x= 即可访问web.xml文件(?x=的作用是使链接成为 web.xml?x=.jsp,就可以访问web.xml了,不加的话就成了
web.xml.jsp了,就报404了)


 


posted on 2016-03-29 15:12  远方的人  阅读(185)  评论(0编辑  收藏  举报

导航