[中间件]tomcat和apache有什么区别?

[中间件]tomcat和apache有什么区别?,第1张

tomcat是一个jsp的容器,可以解析html但效率远没有apache高,apache是一个静态页面的服务器,在加载一些模块后可以解析php perl 等脚本
apache:侧重于>Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。
Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP)
Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行
区别
Apache是有C语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat是Java编写的,更好的支持Servlet和JSP。
1、Apache是Web服务器,Web服务器传送(serves)页面使浏览器可以浏览,Web服务器专门处理>

   当服务器收到序列化对象数据后,会调用对象类的readobject()方法进行反序列化,这里我们构造的恶意序列化对象使用的是AnnotationInvocationHandler类的实例化对象。所以当服务器收到这个对象时会去调用该类的readobject()方法进行反序列化,下面我们跟着上面的触发流程进行一步步触发分析。

结论 :在漏洞触发的第一步中,在反序列化我们向服务器发送的恶意序列化AnnotationInvocationHandler对象时会触发对构造该类对象时传入的Map类型对象的第一个键值对的value进行修改。

   当通过迭代器对象对TransformedMap类型的value值进行修改时会调用AbstractInputCheckedMapDecorator(TransformedMap类的父类并实现了 MapEntry接口)中的内部类MapEntry的setValue()方法,debug运行可以看到thisparent变量值是TransformedMap对象的第一个键值对。

结论 :在漏洞触发的第二步中,触发了TransformedMap的checkSetValue()方法

   可以看到ChainedTransformer对象的transform()方法的功能是将传入的对象交给对象中的thisiTransformers变量引用的对象的transform()方法进行处理。thisiTransformers变量引用的对象从53行可知是对象实例化时传入的,从poc的25行可知我们实例化时传入一个Transformer[]的数组。

结论 :在漏洞触发的第三步中,TransformedMapcheckSetValue()触发ChainedTransformertransform()方法。ChainedTransformertransform()方法将传入的对象经过ChainedTransformer对象中的各个Transformer类型的实例对象调用实例化对象的transform()方法处理。

   由poc 20-25行可知ChainedTransformer对象中的Transformer类型的实例对象分别是ConstantTransformer、InvokerTransformer,首先触发ConstantTransformer对象的transform()方法,可以看出ConstantTransformer对象的transform()方法的功能是将传入的对象转换成实例化ConstantTransformer对象时传入的对象,由poc的21行可知实例化ConstantTransformer对象时传入的对象为javalangRuntimeclass,因此经过ConstantTransformertransform()后传入的参数变成了类对象 javalangRuntimeclass ,再经过InvokerTransformertransform()处理。

   从59-61行可以看出InvokerTransformertransform()功能是通过反射得到传入对象中方法名为thisiMethodName参数类型为thisiParamTypes的方法,并执行该方法传入的方法参数为thisiArgs。而thisiMethodName、thisiParamTypes、thisiArgs三个参数都是我们在实例化InvokerTransformer对象时自定义的,这导致可以进行任意命令执行。

第一次执行InvokerTransformertransform()方法后

第二次执行InvokerTransformertransform()方法后

第三次执行InvokerTransformertransform()方法

结论 :在漏洞触发的第四步中,传入的对象经过1次ConstantTransformertransform()与3次InvokerTransformertransform()转换触发exec()任意命令执行。

ps:jdk版本需要17

Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSA>Apache与IIS是两种最受欢迎的web服务器软件。
Apache通常在Unix或Linux *** 作系统上运行(也可以在windowsXP系统运行);
IIS是与Microsoft windows的部分版本捆绑在一起的。

这两种服务器软件安装在本机上的主要作用:
一、IIS的重要特性是支持ASP。IIS 30版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。
通俗的讲,就是你在你的主机上安装了IISWeb服务器软件后,你就可以在你的电脑上安装运行一些IIS支持的脚本语言。比如说,可以在你电脑上安装运行ASP语言的网站、FTP服务器或者其他一些IIS支持的脚本程序。
二、Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
apache的主要属性:
1,支持>

>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13510631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-22
下一篇 2023-08-22

发表评论

登录后才能评论

评论列表(0条)

保存