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

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

前言Servlet内存马的最后一篇 , 和之前的分析其实差不太多 , 基础知识就不进行了 , 这篇文章就直接从加载开始说起 , 废话不多说直接开始吧 。
一、Servlet流程分析(一)StrandContext.startInternal方法首先我们需要先了解一下Tomcat的加载流程 , 这里借用师傅的一张图 。
我们通过上图Tomcat的启动流程可以得知 , 首先我们启动到StandardHost就会去启动StrandContext , 我们和之前内存马的分析一样 , 我们从Contextconfig类加载配置文件开始分析 , 我们打好断点 , 然后开始查看栈信息 。
跟进上图的栈信息 , 我们可以看到StandardHost之后就会走到StrandContext , 我们跟到StrandContext进行查看 。 可以看到我们此时执行的是StandardContext. startInternal() , 根据栈的信息 , 我们在this.fireLifecycleEvent 位置正在解析web.xml并启动StandardWrapper 。 我们继续往下看代码 。
startInternal()方法在最后依次调用了listenerStart、filterStart、loadOnStartup方法 , 我们跟到loadOnStartup方法进行查看 。
这里我们首先对children进行了一个变量 , 大概猜测children应该是存储servlet的变量 。 接下来做了一个迭代 , 执行了wrapper.load()对其进行加载 。 我们这里其实就是我们加载wrapper的地方 。
(二)ContextConfig读取配置文件到这里我们已经跟到了StandardContext加载Wrapper的位置 , 最关键的参数其实就是children , 所以我们回到刚才ContextConfig的位置继续进行分析 。 首先ContextConfig读取web.xml配置文件 , 我们跟到configureContext()方法查看代码 , 首先读取到servlet后进行迭代 。
【一>所有资源关注我 , 私信回复“资料”获取<一】
1、网络安全学习路线
2、电子书籍(白帽子)
3、安全大厂内部视频
4、100份src文档
5、常见安全面试题
6、ctf大赛经典题目解析
7、全套工具包
8、应急响应笔记
- 微信又出新功能,事关支付限额
- 户外|“小眼镜”增多 专家支招教你科学用眼
- 单项冠军|再添三家“小巨人”,青岛高新区梯度培育见成效
- 领军企业|30个!中国科协发布2022年科技领域重大问题难题
- 零售业|确定涨价!iPhone14四款新机全面涨价!国行也在其中!
- 芯片|外媒:老美“加码”相关限制后,更为“棘手”的后果已经出现!
- 我国首个海洋油气装备投产!还有一批重大工程取得新进展→
- 苹果|苹果多款新品已提上日程
- 疫情期间获近亿元A轮投资,青浦这家企业数字化服务商乘“长三角数字干线”发展快车逆势上扬
- 【选购技巧】最高可省1600 苹果暑期教育优惠季保姆级攻略
