本文参考:https://www.freebuf.com/vuls/168609.html
一、Struts2漏洞历程
从2007年7月23日发布的第一个Struts2漏洞S2-001到2017年12月发布的最新漏洞S2-055,跨度足足有十年,而漏洞的个数也升至55个。分析了Struts2的这55个漏洞发现,基本上是RCE、XSS、CSRF、DOS、目录遍历和其他功能缺陷漏洞等等。本篇文章,重点关注威胁性较大的那些著名RCE漏洞,也是黑客们比较喜欢利用的。
RCE漏洞大部分是Struts2框架执行了恶意用户传进来的OGNL表达式,造成远程代码执行。可以造成“命令执行、服务器文件操作、打印回显、获取系统属性、危险代码执行”等,只不过需要精心构造不同的OGNL代码而已。那么,漏洞都是如何触发,或者说,如何注入OGNL表达式,造成RCE,下面用一个表来简要概括:
使用 OGNL,可以用简洁的语法来完成对 java 对象的导航。通常来说:通过一个“路径”来完成对象信息的导航,这个“路径”可以是到 java bean 的某个属性,或者集合中的某个索引的对象,等等,而不是直接使用 get 或者 set 方法来完成。
网友评论