平台安全之中间件安全

news/2025/3/14 18:22:04/

理解中间件
一次web访问的顺序,web浏览器->web服务器(狭义)->web容器->应用服务器->数据库服务器

web服务器
广义:提供广义web服务的软件或主机

狭义:提供w3服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、Apache、nginx、Lighttpd。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎、Web容器)。

web容器
容器:作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,不必关注其它系统问题。例如:tomcat(拥有JSP容器,servlet容器),Jboss(拥有EJB容器)。

web容器:处理http的容器,例如tomcat(拥有JSP容器,servlet容器),IIS(拥有ASP容器)。

应用服务器
中间件:为一种或多种应用程序提供容器,同时为应用程序提供相关服务。

应用服务器:用于被其他应用服务器或web服务器调用的中间件。例如Tomcat,WebLogic,WebSphere,Jboss

IIS,Tomcat,WebLogic,WebSphere即是应用服务器,又拥有web服务器的功能。

Tomcat漏洞与服务
Tomcat简介
tomcat是apache的一个中间件软件,其可以提供jsp或者php的解析服务,为了方便远程管理与部署,安装完tomcat以后默认会有一个管理页面,管理员只需要远程上传一个WAR格式的文件,便可以将内容发布到网站,这一功能方便了管理员的同时也给黑客打开了方便之门,除此之外,tomcat还有一些样本页面,如果处理不当也会导致安全问题。

弱点测试
默认后台密码
后台地址:http://www.test.com:8080/manager

默认密码:

管理后台爆破
一般tomcat后台登录口不做任何安全处理,可以无限次尝试登入。

后台上传shell
1 将我们的jsp马打包成war文件 命令:jar -cvf shell.war shell.jsp

2 将之前打包的war包上传部署

安全防护
1 修改/conf/tomcat-users.xml中的帐号密码(越复杂越好)

2 升级tomcat版本

3 删除远程部署页面

Jboss漏洞与防护
Jboss简介
JBoss这是一个基于JavaEE的应用服务器,与tomcat类似的是jboss也有远程部署平台,但不需要登陆。漏洞利用过程与tomcat类似,因此不再截图说明。除了远程部署漏洞外,jboss还存在反序列化漏洞,这里不再详述。

弱点测试
管理后台弱口令
后台页面:http://www.test.com:8080/jmx-console/

后台上传部署war包获取webshell

命令执行
1 /invoker/EJBInvokerServlet

2 /invoker/JMXInvokerServlet

3 /admin-console/login.seam

4 /web-console/Invoker

5 Application Deserialization

6 Servlet Deserialization

7 Apache Struts2 CVE-2017-5638

测试工具:https://github.com/joaomatosf/jexboss

安全防护
1 关闭jmx-console

2 关闭web-console

3 删除/invoker/EJBInvokerServlet

4 删除/invoker/JMXInvokerServlet

5 升级jboss

WebLogic漏洞与防护
WebLogic简介
weblogic是一个基于JavaEE构架的中间件,安装完weblogic默认会监听7001端口。

弱点测试
后台弱口令
默认后台: http://www.test.com:7001/console/login/loginForm.jsp

默认密码:

后台上传部署war包获取webshell

测试工具:https://github.com/dc3l1ne/Weblogic-Weakpassword-Scnner

命令执行
1 反序列化命令执行

测试工具:https://github.com/hanc00l/weblogic_unserialize_exploit

安全防护
1 加强密码管理,使用复杂的密码

2 删除远程部署文件

3 后台限制登录IP

axis2命令执行漏洞
axis2简介
axis2也是apache的一个项目,是新一代的SOAP引擎

弱点测试
默认后台弱口令
默认后台:http://www.test.com/axis2-admin/

默认口令:admin与axis2

登录后台上传shell
1 打包一个aar文件

2 上传部署

3 参考文章:http://javaweb.org/?p=1548

安全防护
1 后台登录限制IP

2 加大密码复杂度

IIS漏洞与防护
IIS简介
IIS是微软的一款web服务器,其配置不当容易产生webdav漏洞。webdav本身是iis的一项扩展功能,开启后可以使用除了get、post以外的一些请求类型,比如put等。但如果配置不当,就会导致文件上传漏洞。

弱点测试
IIS写权限漏洞
漏洞说明:此漏洞主要是因为服务器开启了 webdav的组件导致的可以扫描到当前的操作,具体操作其实是通过webdav的OPTION来查询是否支持PUT。

检测方式:

1 构造OPTION包向服务器提交

返回结果如下:

当ALLOW中包含如上方法时,可以确定服务器开启了WebDAV。

此时可以用PUT上传文件,但是不可以直接上传可执行脚本文件,可以先上传一个其他类型的文件,然后MOVE成脚本文件。

图片

启用了“WebDAV”扩展,并且复选了“写入”,就可以写入txt文件了。要想使用MOVE命令将其更名为脚本文件后缀,必须还复选上“脚本资源访问”。

但是发现利用IIS的解析漏洞,可以MOVE成test.asp;.jpg,然后就可以当做shell来执行了

命令执行
漏洞条件:iis 6.0 + webdav

利用POC:https://github.com/edwardz246003/IIS_exploit

安全防护
1 禁用WebDAV

2 如果要使用WebDAV的话,加上权限验证


http://www.ppmy.cn/news/1018652.html

相关文章

使用Flask.Request的方法和属性,获取get和post请求参数(二)

1、Flask中的request 在Python发送Post、Get等请求时,我们使用到requests库。Flask中有一个request库,有其特有的一些方法和属性,注意跟requests不是同一个。 2、Post请求:request.get_data() 用于服务端获取客户端请求数据。注…

详解——JS map()方法

JavaScript是一种广泛使用的编程语言,用于开发Web应用程序。它具有许多内置函数和方法,其中之一是map()方法。map()方法是一个非常有用的函数,它允许我们在数组中的每个元素上执行相同的操作,并返回一个新的数组。 map()方法的语…

idea - 刷新 Git 分支数据 / 命令刷新 Git 分支数据

一、idea - 刷新 Git 分支数据 idea 找到 fetch 选项,重新获取分支数据 二、命令刷新 Git 分支数据 git fetch参考链接 1. 远程Gitlab新建的分支在IDEA里不显示

docker小白第二天

centos上安装docker docker官网,docker官网,找到下图中的doc文档。 进入如下页面 选中manuals,安装docker引擎。 最终centos下的docker安装文档链接:安装文档链接. 具体安装步骤: 1、打开Centos,输入命…

log_softmax比softmax更好?

多类别分类的一个trick 探讨一下在多类别分类场景,如翻译、生成、目标检测等场景下,使用log_softmax的效果优于softmax的原因。 假设词典大小为10,一个词的ID为9(即词典的最后一个词),使用交叉熵作为损失函…

【工程优化问题】基于多种智能优化算法的压力容器设计问题研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

基于星火和Gradio的聊天机器人

星火大模型官网:https://xinghuo.xfyun.cn/ 1 创建虚拟环境(windows) conda create -n Gradio python3.8 pip install gradio 中间遇到os报错,解决方案: pip install aiofiles23.2.1 2 代码 SparkDesk.py&#xff1a…

Spring整合web环境

目录 1.添加pom 2.配置web.xml spring.xml 4.配置在创建一个类实现ServletContextListener 5.配置servlet 1.添加pom <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.…