前言
Servlet内存马的最后一篇,和之前的分析其实差不太多,基础知识就不进行了,这篇文章就直接从加载开始说起,废话不多说直接开始吧。
一、Servlet流程分析
(一)StrandContext.startInternal方法
首先我们需要先了解一下Tomcat的加载流程,这里借用师傅的一张图。
我们通过上图Tomcat的启动流程可以得知,首先我们启动到StandardHost就会去启动StrandContext,我们和之前内存马的分析一样,我们从Contextconfig类加载配置文件开始分析,我们打好断点,然后开始查看栈信息。
跟进上图的栈信息,我们可以看到StandardHost之后就会走到StrandContext,我们跟到StrandContext进行查看。可以看到我们此时执行的是StandardContext. startInternal(),根据栈的信息,我们在this.fireLifecycleEvent 位置正在解析web.xml并启动StandardWrapper。我们继续往下看代码。
startInternal()方法在最后依次调用了listenerStart、filterStart、loadOnStartup方法,我们跟到loadOnStartup方法进行查看。
这里我们首先对chi