Tomac弱口令getshell

中间件安全

中间件

中间件(Middleware)是指一种软件组件,其作用是在不同的系统、应用程序或服务之间传递数据和消息。它通常位于应用程序和操作系统之间,负责在不同的应用程序之间传递数据、协调不同应用程序之间的通信,以及处理网络请求等。

中间件通常是一种插件式架构,允许开发人员将其集成到现有的应用程序中。它可以提供诸如身份验证、授权、缓存、负载均衡、日志记录、安全性等功能,以简化应用程序的开发和部署过程。从广义上讲,中间件涵盖了从 Web 服务器,到身份验证系统,再到消息传递工具等一切内容。从另个一角度来讲,中间件是:jboss、weblgoic、tomcat、apache等。中间件的使用可以提高应用程序的可扩展性、可靠性、可维护性和安全性。

中间件漏洞

中间件漏洞是指在中间件软件中存在的安全漏洞,这些漏洞可能被攻击者利用来对系统进行攻击和渗透。中间件漏洞通常包括以下几种:

  1. 代码注入漏洞:攻击者可以通过向中间件发送恶意代码,从而执行任意代码或获取敏感数据。
  2. 跨站脚本漏洞:攻击者可以通过在中间件输出的网页中插入恶意脚本,来窃取用户信息或进行其他恶意行为。
  3. SQL注入漏洞:攻击者可以通过在中间件输入的SQL查询中插入恶意代码,从而执行任意SQL查询或获取敏感数据。
  4. 认证和授权漏洞:攻击者可以利用中间件的认证和授权机制的漏洞,来绕过访问控制,获取系统权限。
  5. 文件包含漏洞:攻击者可以利用中间件的文件包含功能,来包含恶意文件并执行任意代码。
  6. 为了保护中间件的安全,开发人员需要采取一系列安全措施,如开发安全代码、定期更新中间件、限制访问权限、配置防火墙等。此外,使用漏洞扫描工具可以帮助开发人员及时发现和修复中间件漏洞。

(1) Tomcat
Tomcat是一个开源的Java Servlet容器,由Apache软件基金会开发。它可以作为独立的Web服务器或应用服务器,也可以作为其他Web服务器的插件来使用,如Apache HTTP Server。Tomcat支持JavaServlet、JavaServer Pages(JSP)、Java Expression Language(EL)和WebSocket等Java技术,并提供了许多企业级特性,如集群、安全性和可扩展性。

A. Tomcat密码爆破到WAR包部署

1)Tomcat manager
Tomcat Manager是Tomcat自带的一个Web应用程序,用于管理Tomcat实例。通过TomcatManager,可以方便地对Tomcat实例进行监控和管理,包括查看应用程序的部署状态、启动和停止应用程序、查看应用程序的会话信息等。

2)Tomcat manager基本认证
Tomcat Manager使用基本认证方式进行认证,即需要提供用户名和密码才能访问Manager界面,而基本认证方式需要将用户名和密码进行Base64编码后发送给服务器。

基本认证(Basic Authentication)是HTTP协议中一种最基础的认证方式之一,也是最早的一种Web身份认证方式。基本认证是通过在HTTP请求头中添加Authorization字段来完成身份认证的,具体过程如下:

  1. 客户端向服务器发送HTTP请求,请求头中包含Authorization字段,格式为”Basicbase64(username:password)”,其中,base64(username:password)表示将用户名和密码进行Base64编码后的字符串。
  2. 服务器收到请求后,解析Authorization字段,将base64(username:password)进行解码,得到用户名和密码。
  3. 服务器使用得到的用户名和密码进行身份验证,如果验证通过,返回相应的HTTP响应,否则返回401Unauthorized响应。

3)Tomcat密码爆破

点击该页面的 Manager App 处会弹出输入用户名和密码的认证框。在日常的工作中遇到Tomcat,可以使用以下常见的账号密码尝试是否能登录。

用户名:admin、tomcat、manager
密码:admin、123456、tomcat、manager、admin123

Tomcat 6.0及以后版本中,如果用户连续登录失败次数达到了5次,默认情况下会锁定该用户的登录账户30分钟。在锁定期间,即使用户输入正确的用户名和密码,也无法登录管理页面。

image-20230512105529329

找到其请求包(该请求包与常见的登录请求包不一样,是一个GET请求),其认证信息在请求头的 “Authorization”里

在上文中我们知道其编码方式,为“用户名:密码”进行base64编码,那使用Burp Suite如何对其进行爆破呢?关键点在于【Payload type】,其中有一个叫做“自定义迭代器”,自定义迭代器允许用户通过自己的方式来生成参数的值,以便进行爆破测试。

然后还要将【Payload Encoding】的“√”g给去掉,否则会对字典里包含了方框的字符进行url编码

image-20230512110709144

Tomcat认证内容由3个部分组成,如下

用户名:密码
1 2 3

4)部署WAR包

WAR(Web Application Archive)是一种Web应用程序的打包格式,用于将Web应用程序打包成一个单独的文件,便于部署和分发。WAR文件实际上是一种JAR(Java Archive)文件,其中包含了Web应用程序的全部内容,包括Java类、HTML、JSP、Servlet、XML配置文件、静态资源(如图片、CSS、JavaScript文件等)等。WAR文件还可以包含一些特定于Web应用程序的配置文件,例如web.xml、context.xml等。

WAR文件通常是通过Web服务器部署的,例如Tomcat、Jetty等。在部署Web应用程序时,Web服务器会将WAR文件解压缩并将其部署到指定的目录中,然后启动Web应用程序。通过将Web应用程序打包成WAR文件,可以方便地将应用程序部署到不同的Web服务器中,也可以方便地将应用程序分发给其他人使用。

制作war包
将jsp马添加到压缩文件,然后将压缩文件的zip后缀修改为war

webshell路径:
ip:port/war包名字/文件名