【干货】Servlet内存马加载流程分析

本文深入剖析Servlet内存马的加载流程,从StrandContext.startInternal方法开始,经过ContextConfig读取配置文件,到最后addChild启动wrapper线程,详细解释每个关键步骤,为理解Servlet内存马的实现提供了清晰的路径。
摘要由CSDN通过智能技术生成

前言

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值