靶场科普 | Struts2远程命令执行漏洞(CVE-2019-0230)

发表时间:2021-11-29 14:23

本文由“东塔网络安全学院”总结归纳


靶场介绍:

Struts2远程命令执行漏洞(CVE-2019-0230)


今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:“Struts2远程命令执行漏洞(CVE-2019-0230)”。

一、实验介绍

1.漏洞简介

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

2.漏洞概述

1)漏洞编号CVE-2019-0230

Apache Struts框架, 会对某些特定的标签的属性值,比如id属性进行二次解析,所以攻击者可以传递将在呈现标签属性时再次解析OGNL表达式,造成OGNL表达式注入。从而可能造成远程执行代码。

2)该漏洞有三个限制条件:

Struts2标签的属性值可执行OGNL表达式、Struts2标签的属性值可被外部输入修改、Struts2标签的属性未经安全验证仅当以上三个条件都满足时,攻击者可以通过构造恶意的OGNL表达式,造成远程命令执行的效果。

二、实验目的

1.掌握Struts2远程命令执行漏洞(CVE-2019-0230)的基本漏洞概述;

2.了解漏洞的产生方式;

3.了解漏洞修复方式。

三、实验步骤

1.打开实验地址,启动环境看到测试界面;

2.访问
http://120.25.24.45:30680/?id=%7B233*233%7D 可以发现233*233的结果被解析到了id属性中。

四、修复建议

升级到Struts 2.5.22或更高版本。或者开启ONGL表达式注入保护措施或者开启ONGL表达式注入保护措施