利用Struts2“命令执行漏洞”,黑客可轻易获得网站服务器ROOT权限、执行任意命令,从而窃取重要数据或篡改网页,目前国内至少有3500家网站存在该高危漏洞。据乌云漏洞平台显示,运营商及金融等领域大批网站,甚至包括政府网站均受Struts2漏洞影响。
据悉,Struts2“命令执行漏洞”早在2010年已经曝光,但当时没有公开的漏洞利用工具,因此并未造成过多危害。直到近期,针对该漏洞新的攻击代码在网上公开,漏洞利用工具也随之涌现,使黑客攻击完全没有门槛,80%以上应用Struts2框架的网站因此面临严重风险。
经360网站安全检测平台分析,Apache Struts2中WebWork框架使用XWork基于HTTP参数名执行操作和调用,将每个HTTP参数名处理为OGNL(对象图形导航语言)语句。为了防范攻击者通过HTTP参数调用任意方式,XWork使用了以下两个变量保护方式的执行:
- OgnlContext的属性xwork.MethodAccessor.denyMethodExecution(默认设置为true)
- SecurityMemberAccess私有字段allowStaticMethodAccess(默认设置为false)
为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值。进一步可调用java语句来执行任意命令,甚至控制操作系统。
之前Struts2官方补丁屏蔽了黑客通过\u0023 (16进制的#) 攻击的方式,但黑客仍可以利用\43(8进制的#)实施突破。
鉴于Struts2“命令执行漏洞”影响网站众多,且危害巨大,360网站安全检测平台已紧急更新漏洞库,并向存在漏洞的注册网站发送示警邮件,同时建议所有使用Struts2框架的用户立即升级至官方最新版本,并定期使用360网站安全检测服务随时掌控网站安全状况。(中新网IT频道)