马原理是什么原理

  5. 业务逻辑处理完成之后,返回给Servlet容器,然后容器将结果返回给客户端。容器关闭时候,会调用destory方法

Servlet 的装载、初始化、执行以及资源回收

filter也称之为过滤器,过滤器实际上就是对web资源进行拦截,做一些过滤,权限鉴别等处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。

  当多个filter同时存在的时候,组成了filter链。web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter。第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。

  如果我们动态创建一个filter并且将其放在最前面,我们的filter就会最先执行,当我们在filter中添加恶意代码,就会进行命令执行,这样也就成为了一个内存 Webshell

和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。web 应用程序启动时, web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作(filter对象只会创建一次,init方法也只 会执行一次)。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。

Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载Filter对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。

在IDEA中创建Servlet,可参照下方链接《》,唯一不一样的是Filter配置在web.xml,而不是通过@注释配置在类中。

这里写了两个FilterDemo,代码基本相同,主要是为了展示这个Filter过滤链

接下来借用下面这张图分析一下 Tomcat 中是如何将我们自定义的 filter 进行设置并且调用的:

可以看到此时已经装配第一个filter

Filter是javaweb中的过滤器,会对客户端发送的请求进行过滤并做一些操作,我们可以在filter中写入命令执行的恶意文件,让客户端发来的请求通过它来做命令执行。而filter内存马是通过动态注册一个恶意filter,由于是动态注册的,所以这个filter没有文件实体,存在于内存中,随着tomcat重启而消失。一般我们把这个filter放在所有filter最前面优先执行,这样我们的请求就不会受到其他正常filter的干扰。

web.xml简单实现内存马注入

看完上面的Filter过滤链,本地模拟一个Filter内存马注入:

我们把恶意的Filter注入内存中,只要符合urlpattern,就可以触发内存shell,但这个Filter内存马注入是一次性的,重启就没有了。

Filter内存马动态注入

从上面的例子简单知道内存马的注入过程,但是实际环境中怎么可能在web.xml中添加对应的恶意Filter类,所以我们需要借用Java反射来修改filterConfigs,filterDefs,filterMaps这三个变量,将我们恶意构造的FilterName以及对应的urlpattern存放到FilterMaps,进而达到利用Filter执行内存注入的操作。

现在要解决的两个问题:

  1. 如何获取这个context对象。

其实也是层层递归取出context字段的值。

当然也可以从MBean中获取,可以参考下面文章:

看一下filterDef类的参数格式:

实例化一个FilterDef对象,并将恶意构造的恶意类添加到filterDef中

//定义一些基础属性、类名、filter名等
 

看一下filterMap类的参数格式:

//创建filterMap,设置filter和url的映射关系,可设置成单一url如/xyz ,也可以所有页面都可触发可设置为/*
 

至此,我们的恶意filter已经全部装载完成

结合上面的分析,最终的内存马为:

此时的内存马已经注入到内存中,只需 ?cmd=Command,即可执行我们的命令

输入1选择tomcat的进程,之后会进入下面的操作界面:


利用下面的命令进行模糊搜索,会列出所有调用了Filter的类

利用下面命令将 Class 进行反编译


同时也可以进行监控 ,当我们访问 url 就会输出监控结果

输入1选择tomcat的进程,之后会进入下面的操作界面:

然后在java或class文件夹会保存木马以及运行的类

c0ny1 师傅写的检测内存马的工具,通过jsp脚本扫描并查杀各类中间件内存马,比Java agent要温和一些。能够检测并且进行删除,是一个非常方便的工具

内存马远不止这些,本文中内存马还是需要上传 jsp 来生效,但是实际上利用方式远不止这样,我们还可以借助各种反序列化来动态注册 Filter 等。

本次项目的代码文件已打包在github:

    真理及其客观性(真理观上的唯物论)

  一、真理是指人们对客观事物及其规律的正确反映。

  真理是客观的,这是因为:

  (1)真理内容是客观的。真理的内容来源于不以人的意志为转移的客观实在;

  (2)检验真理的社会实践是客观的。

  二、真理的绝对性和相对性(或绝对真理和相对真理)是真理的两重属性(同人的认识能力的至上性和非至上性相联系),二者是对立统一关系

  (1)二者是有区别的。绝对真理或真理的绝对性有三个方面的含义:

  任何真理都是客观事物及其规律的正确反映,都具有不依赖人类的客观内容,这是无条件的、绝对的。

  人的认识按其本性能够正确认识无限发展的客观世界,也是无条件的绝对的。

  从真理的发展来说,无数相对真理的总和构成绝对真理。

  相对真理或真理的相对性是指真理的条件性。表现为:

  从认识的广度来看,任何真理的认识都是对整个世界某些领域、某些事物和过程的一定范围的正确反映,有待于扩展。

  从认识的深度看,任何真理都是对特定事物一定程度、一定层次的近似正确的反映,有待于深化。

  从进程上看,它只是对事物的一定发展阶段的正确认识,有待于发展。

  (2)绝对真理和相对真理又是相互渗透、相互联结的

  相对之中有绝对,任何相对真理之中都包含着绝对真理的成分;另一方面,绝对之中也有相对,无数相对真理的总和构成绝对真理。

  真理是由相对走向绝对的永无止境的发展过程。任何真理性认识都是由相对真理向绝对真理转化中的一个环节。

  (3)割裂二者的关系犯两种错误:绝对主义真理观和相对主义真理观。绝对主义真理观只讲真理的绝对性,否认真理的相对性;相对主义真理观则只讲真理的相对性,否认真理的绝对性。

  三、真理与谬误 成功与失败(易考分析题)

  (1)含义:真理是对事物正确的认识,谬误是对事物错误的认识。

  (2)辩证关系:对立统一

  真理和谬误是性质不同的两种认识,它们是对立的。

  真理和谬误又是统一的,它们相互依存,相互转化,真理和谬误相比较存在。在一定条件下,可以相互转化,真理转化成谬误,谬误转化成真理。

  坚持真理,修正谬误,是马克思主义的一条基本原则。我们要善于坚持和发展真理,敢于和善于同谬误做斗争。在人们的认识和实践活动中,正确的认识往往会导致成功的实践,而由于主客观条件的限制,人们的实践活动也会达不到自身所期待的结果,导致失败。只要人们分析失败的原因,化不利条件为有利条件,就能从失败中吸取教训,变失败为成功。

  四、实践是检验真理的唯一标准(真理标准的唯物论)

  (1)实践是检验真理的唯一标准,这是由真理的本性,即主观与客观相符合所要求和实践的本质特点,即直接现实性所决定的。

  (2)真理的本性是主观与客观相符合,而主观和客观事物本身都不能作为认识真理性的标准。只有把主观同客观联系起来加以对照的东西,才能充当检验真理的标准。唯一有这个特点的只有社会实践。

  (3)实践不仅是主观和客观联系的桥梁,而且具有直接现实性特点。所谓直接现实性,就是实践能够把主观的认识变为客观现实,即主观见之于客观的活动。所以,只有实践的结果能验证认识是否具有真理性。

  五、实践标准的确定性(绝对性)和不确定性(相对性)(真理标准的辩证法)

  (1)实践作为检验真理的标准既是绝对的,又是相对的,是绝对与相对的辩证统一,这就是真理标准问题上的辩证法。

  (2)实践标准的绝对性是指:

  检验认识是否具有真理性的唯一标准只能是实践,这是无条件的、绝对的。

  实践对一切认识最终都能作出检验,没有实践检验不了的认识,这一点也是无条件的、绝对的。

  (3)实践标准的相对性是指:

  任何实践都是具体的,都受一定历史条件的限制,因此一定历史条件下的实践,不能完全驳倒或证实现存的一切认识。

  实践对认识的检验不是一劳永逸的,是一个过程。因此,一定历史阶段的实践对认识真理性的检验是有条件的、相对的。

  已被实践检验过的真理还要继续经受实践的检验。

  六、价值及其特点、价值评价、价值选择

  (1)作为哲学范畴的价值,是指客体以自身属性满足主体需要或主体需要被客体满足的效益关系。

  (2)价值具有客观性、主体性、社会历史性与多维性价值的客观性表现在:

  价值必须以客观事物本身所具有的属性为现实基础。

  人的需要不是主观随意的,而是受社会实践和历史条件制约的。

  价值的主体性表现在:

  客观事物的某种属性能否具有价值及何种价值要以人的需要为基准。

  同一客体对于不同主体的价值是不同的,带有主体的个性特征。

  主客体之间的价值关系不是一种自然的、现成的关系,也不是主体需要与客体属性之间随机相遇的关系,而是主体在实践基础上确立的同客体之间的一种创造性的关系。

  (3)价值评价及其特点

  所谓价值评价,就是对客体可能具有的价值、实践改造后的意义、成果等进行科学的评价。

  价值评价的特点是:

  评价是以主客体的价值关系为认识对象的。

  评价结果与评价主体有直接联系,是依主体的特点而转移的。

  评价结果的正确与否依赖于相关的知识性认识。

  (4)价值选择及其实现

  价值选择:客体可以在各方面满足主体人的不同需要,即主体可以根据需要对客体价值进行选择。

  价值选择的实现:只要主体所作出的价值判断、价值选择是合理的,即不损害和不有悖于人类主体的根本利益,不违背社会发展的客观规律,价值的选择就能够实现。

  七、真理与价值的关系(易考分析题)

  (1)真理和价值是人类活动的两个基本原则,二者既区别又统一。

  (2)真理和价值首先是有区别的:

  真理原则体现客体尺度的要求,要求人们在认识真理时不能考虑人的主体需要和利益,而价值原则体现主体尺度的要求,要求人们的思想和行动要保证主体需要和利益的满足;

  真理原则主要表明人的活动中的客观制约性,而价值原则主要表明人的活动中的目的性;

  真理原则是社会活动中的统一性原则,价值原则是社会活动中的多样化原则;

  真理是一元的,它服从于世界的物质统一性,而价值是多元的,不同的主体有不同的需要、不同的价值要求和价值选择。

  (3)真理和价值作为人类活动所追求的两个目标,二者又是统一的。二者相互联系、相互补充,有机的结合,人类才能合理、有效地进行各种活动。

  真理与价值的辩证统一原理是社会主义核心价值体系的理论基础

  无论在实践还是在认识活动中,追求真理和创造价值都是人类历史活动的两大根本原则。

  前者要求人类按照世界的本来面目去认识和改造世界,后者则要求人类必须按照自己的尺度和需要去认识和改造世界,使世界适合个人的生存和发展。前者使人的认识和实践符合客观性,注重统一性,后者则使人的活动符合目的性,侧重多样性。真理与价值的统一是人的活动统一性与多样性的结合,是人的活动合规律性与合目的性的统一。

  坚持真理和价值的辩证统一,要求我们在实践中必须坚持和弘扬科学精神和人文精神,既坚持以科学的实事求是的精神去认识和改造世界,又把人们的利益和人的发展看做一切认识和实践活动的出发点,贯彻以人为本原则。

  八、认识世界和改造世界的关系

  (1)认识世界和改造世界是人类创造历史的两种基本活动。认识世界的任务不仅在于解释世界,更重要的在于改造世界。

  (2)认识世界和改造世界是相互依赖、相互制约,辩证统一的关系。认识世界的目的是为了改造世界;要有效地改造世界,又必须正确地认识世界。

  (3)认识世界和改造世界、改造客观世界和改造主观世界的过程,也就是从必然走向自由的过程,自由是对必然的认识和对世界的改造。认识必然,争取自由,是人类认识世界和改造世界的根本目标,是一个世界历史性的过程。由必然到自由表现为人类不断的从必然王国走向自由王国的过程。

  认识世界是为了改造世界,要有效的改造世界,又必须正确的认识世界。认识世界和改造世界的统一,决定了理论与实践必须结合。理论以实践为基础,实践以理论为指导。脱离实践的理论是空洞的理论,离开理论的实践是盲目的实践。

我要回帖

更多关于 对马原理的建议 的文章

 

随机推荐