1. 极安网首页
  2. 网络安全技术

Struts2-059远程代码执行漏洞分析(CVE-2019-0230)

前言

2020年8月13日虽然近几年来关于ONGL方面的漏洞已经不多了,但是毕竟是经典系列的RCE漏洞,还是有必要分析的。而且对于Struts2和OGNL了解也有助于代码审计和漏洞挖掘。

首先了解一下什么是OGNL,Object Graphic Navigation Language(对象图导航语言)的缩写,Struts框架使用OGNL作为默认的表达式语言。

struts2_S2_059和S2_029漏洞产生的原理类似,都是由于标签属性值进行二次表达式解析产生的,细微差别会在分析中提到。

漏洞利用前置条件是需要特定标签的相关属性存在表达式%{payload},且payload可控并未做安全验证。这里用到的是a标签id属性。

id属性是该action的应用id。

经过分析,受影响的标签有很多继承AbstractUITag类的标签都会受到影响,受影响的属性只有id。

环境准备

测试环境:Tomcat 8.5.56、JDK 1.8.0_131、Struts 2.3.24。

由于用Maven创建有错误没有解决,所以选用idea自带的创建struts2工程。

Struts2-059远程代码执行漏洞分析(CVE-2019-0230)-极安网

创建好工程后,在web/WEB-INF下新建lib文件夹,然后将下载的jar包复制进去即可。

本文转载:hu4wufu@白帽汇安全研究院,不代表 极安网 立场,转载请注明出处:https://secvery.com/124.html