前言:HVV期间,各大厂商均检测出Struts2漏洞,顺手复现;
Struts2 是 Apache 软件组织推出的一个相当强大的 Java Web 开源框架,本质上相当于一个 servlet。Struts2 基于 MVC 架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级 Java web 应用程序
环境搭建
进入vulhub环境,开启S2-057环境,
浏览器访问http://IP:8080/struts2-showcase可以看到Struts2测试页面表示搭建成功
漏洞利用条件
alwaysSelectFullNamespace被设置为true,此时namespace的值是从URL中获取的。URL是可控的,所以namespace也是可控的。
action元素没有名称空间属性集,或者使用通配符。该名称空间将由用户从URL传递并解析为OGNL表达式,最终导致远程代码执行的脆弱性。
复现过程
URL处输入:struts2-showcase/${(1+1)}/actionChain1.action
会发现URL处变为2
我没弹出来计算器,但是Burpsuite测试可以实现弹出root用户(附上别人测试的图)