记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

Struts2 S2-052远程代码执行漏洞分析

2017-09-07 08:25

天融信.阿尔法实验室 李喆,雨夜,张伟业

一、漏洞或事件描述

1.1漏洞背景 2017年9月5日,Apache官方发布了一则公告,该公告称Apache Struts2的REST插件存在远程代码执行的高危漏洞,CVE编号为CVE-2017-9805。   1.2漏洞概述 Struts2 REST插件的XStream组件存在反序列化漏洞,使用带有 XStream实例的 XStreamHandler进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。  

二、漏洞复现

点击edit然后submit抓包 52-1 修改包内容注意事项: Windows,Content-Type要修改成 application/xml,command中写执行命令,string中是用来分割参数的。 正确写法: Content-Type: application/xml <command> <string>c:\windows\system32\cmd.exe</string> <string>/c echo  topsec> c:/topsec.txt</string> </command> 错误写法 <string>c:\windows\system32\cmd.exe /c echo  topsec> c:/topsec.txt</string> 52-2 成功写入 52-3 同样在linux中也测试了一下 52-4 52-5

三、漏洞分析

  通过发送payload请求后,返回报错信息,可以看到关键的调用栈位置, 52-6 在ContentTypeInterceptor.intercept之后,再将reader中的数据通过XStreamHandler中的toObject方法进行实例化, 52-7 然后接着调用了poayload中的unmarshaller对xml数据进行反序列化, 52-8 最终执行了payload中java.lang.ProcessBuilder进程生成器中的command方法来执行系统程序和参数。 52-9

四、修复建议

  4.1影响版本 Struts 2.5 - Struts 2.5.12 4.2官方公告 http://struts.apache.org/docs/s2-052.html 4.3修复建议 1. 升级到 Apache Struts版本 2.5.13. 2. 在不使用时删除StrutsREST插件,或仅限于服务器普通页面和JSONs <constantname="struts.action.extension" value="xhtml,,json" />
知识来源: blog.topsec.com.cn/ad_lab/struts2-s2-052%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9e%e5%88%86%e6%9e%90/

阅读:242504 | 评论:0 | 标签:技术分享 漏洞分析 漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“Struts2 S2-052远程代码执行漏洞分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词