0x00 前言 作者为chamd5安全团队核心成员色豹 2017年9月5日晚间,Apache官方发布Struts 2紧急漏洞公告(S2-052), https://cwiki.apache.org/c…
0x00 前言
作者是chamd5安全团队的核心成员。
2017年9月5日晚,Apache正式发布了Struts 2紧急漏洞公告(S2-052)。
https://cwiki.apache.org/confluence/display/WW/S2-052,漏洞号为CVE-2017-9805,因为Struts2 REST插件的XStream组件具有导致远程代码执行的反序列化漏洞。
Struts 2.5 - Struts版本2.5.12将受此漏洞的影响,该漏洞被定义为严重性级别。
0x01 复现
1.从struts2的官方网站下载最后一个受影响的struts-2.5.12版本,地址:
http://archive.apache.org/dist/struts/2.5.12/struts-2.5.12-apps.zip
下载完成后,解压缩压缩文件并将apputs目录中的struts2-rest-showcase.war文件放入tomcat的webapps目录中。
2.转到浏览器http://127.0.0.1: 8080/struts2-rest-showcase/page,将显示图片中的页面,选择一个ID,然后单击编辑。

3.转到编辑页面,单击提交按钮,突发捕获数据包拦截此数据。
请求将请求中Content-Type的值更改为 application/xml

然后使用以下xml内容替换POST数据。

4.重播数据包并成功弹出计算器。
0x02 防御方案
方案一
将Struts升级到2.5.13的最新版本
方案二
如果系统不使用Struts REST插件,您可以直接删除Struts REST插件,或将以下代码添加到配置文件中以限制服务器文件的扩展名。
< constant name=“struts.action.extension” value=“xhtml,json” />
[原文:Struts2远程执行代码漏洞S2-052复发和防御程序 由ChaMd5安全团队入驻安全脉冲账号发布转载源安全脉冲]