Struts2高危漏洞最新分析

安全 漏洞
日前,Apache Struts2发布漏洞公告,称其Struts2 Web应用框架存在一个可以远程执行任意命令的高危漏洞。利用该漏洞,黑客可轻易攻陷网站服务器,获取网站注册用户的帐号密码和个人资料,而Struts2框架正广泛应用在国内大量知名网站上,包括各大门户、电商、银行等官网也受其影响。

日前,Apache Struts2发布漏洞公告,称其Struts2 Web应用框架存在一个可以远程执行任意命令的高危漏洞。利用该漏洞,黑客可轻易攻陷网站服务器,获取网站注册用户的帐号密码和个人资料,而Struts2框架正广泛应用在国内大量知名网站上,包括各大门户、电商、银行等官网也受其影响。

据360安全专家石晓虹博士介绍,由于Struts2属于底层框架,其漏洞影响范围广、利用难度低,“菜鸟”也可以使用攻击工具直接控制网站服务器,盗取用户数据库,甚至导致2011年底多家网站“密码库”泄露事件再次上演。

目前,网络上已开始一些自动化、傻瓜化的Stuts2漏洞攻击软件,只要在软件中填写存在Struts2漏洞的网站地址,即可直接执行服务器命令,读取网站数据或让服务器关机等操作。而不幸的是,国内大批网站均存在该漏洞,甚至连Stuts2之前的老漏洞尚未修复,从而将网站注册用户信息赤裸裸地暴露在黑客攻击枪口面前。

石晓虹博士建议,广大网站应尽快自查漏洞、安装Apache官网补丁程序。对普通网民来说,近期最好更换一下常用网络帐号的密码,重要帐号密码应单独设置,以免网站密码库泄露危及自身帐号安全。

附:Struts2高危漏洞分析

此漏洞影响Struts2.0-Struts2.3所有版本,可直接导致服务器被黑客远程控制,从而引起数据泄露。漏洞根源在于,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。

这里以“redirect:”前缀举例,struts2会将“redirect:”前缀后面的内容设置到redirect.location当中,如图所示:

Struts2漏洞引爆网站“泄密门”

key.substring(REDIRECT_PREFIX.length())便是前缀后面的内容也就是OGNL表达式,struts2会调用setLocation方法将他设置到redirect.location中。然后这里调用mapping.setResult(redirect)将redirect对象设置到mapping对象中的result里,如图所示:

Struts2漏洞引爆网站“泄密门”

然而上面的过程只是传递OGNL表达式,真正执行是在后面,这里是在FilterDispatcher类中的dispatcher.serviceAction()方法,

Struts2漏洞引爆网站“泄密门”

这里跟入方法最终会在TextParseUtil这个类的调用stack.findValue()方法执行OGNL。

Struts2漏洞引爆网站“泄密门”

 

责任编辑:蓝雨泪 来源: 比特网论坛
相关推荐

2017-07-11 09:42:22

漏洞

2013-07-18 15:57:42

2013-07-19 09:36:04

struts2struts2漏洞

2017-07-14 13:51:19

2017-03-08 22:23:02

2013-07-18 10:06:54

2016-03-22 12:37:45

Struts2Struts2漏洞漏洞检测

2013-07-18 13:11:07

2012-12-18 16:18:06

2013-07-22 10:45:56

2017-07-17 11:00:53

2016-06-08 10:09:24

2013-05-22 10:28:19

2013-07-24 10:35:02

2009-07-29 09:54:34

struts2和str

2016-04-29 10:58:13

2012-08-30 09:48:02

Struts2Java

2009-02-04 10:51:07

2012-12-18 16:38:26

2009-06-08 16:44:00

struts2 ogn
点赞
收藏

51CTO技术栈公众号