tomcat内存马再回头、找查杀工具底层类

admin 2025-12-22 04:20:47 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了Tomcat内存马的查杀技术,包括Servlet、Filter、Listener和Valve四种类型的内存马检测与清除方法。通过获取StandardContext类定位内存马,并提供了具体的代码实现和测试案例。文章解释了如何通过反射获取内部数据结构进行操作,并解答了关于pipeline接口的疑问,强调了接口不具体实现方法的概念。 综合评分: 87 文章分类: WEB安全,漏洞分析,安全工具,实战经验,渗透测试


cover_image

tomcat内存马再回头、找查杀工具底层类

原创

洞洞拐

安服小兵洞洞拐

2025年12月16日 00:00 河南

·项目地址

https://github.com/h3ll0yoyo9527-techhttps://gitee.com/beiyouyun

〇、前言

·c0ny1大佬之前发了tomcat内存马的查杀工具:获取上下文,再获取映射管理工具进行查杀。主要的管理映射的方法找standardContext类即可找到,下面就是我找的部分方法。还有额外的是通过继承得来的,需要去父类中找。dump方法仍无法下载直接打到内存中的文件。

·关于怎么找到的具体的类,就是网上文章写的那样,打断点,上下调式,文章写了好多类名和方法。不过确实,如果不知道这个底层类,可能都不知道写的是啥,就知道从这蹦到那。

·注入文件网上很多,也可以找AI写,相关文章也很多。实在找不到,私信我。

·工具没有优化很多,只做了拆分,有些禁止卸载的逻辑并未添加等。毕竟不是我写的。尊重原创。

1、Servlet查杀(具体路径找最下方的那行字)

·代码自行下载使用,或使用原版scanner也可。这里已经找到了底层类,查杀工具通过调用来进行查杀。

·测试

·访问注入接口

·利用注入

·排查卸载

2、Filter查杀

·测试

·访问注入接口

·利用注入

·排查卸载

3、Listener查杀

·而卸载方法,通过反射获取内部数据结构后直接操作。而StandardContext是通过set方法重置Listener数组的,没有remove方法。

·测试

·访问注入接口

·利用注入

·排查卸载

4、Valve查杀

·standardContext没有直接的getPipeline()方法,是一层层继承过来的。

·我查到了基础接口

·所以思路仍然是:先获取上下文standardContext,获取pipeline对象,获取接口方法。(具体实现自行看代码)

·注意vavle型由于自身特性,如果注入之后出现空白页面,无法运行成功,可以尝试在注入文件中添加getNext().invoke(request, response); 确保请求继续执行

·测试

·访问注入接口

·利用注入

·排查卸载即可

5、疑问解决

·疑问:接口并不具体实现方法,为什么获取的是pipeline接口(我点击了定义名称pipeline前面的结构名称Pipeline我跳转到了接口界面),按理说V.jsp应该调用pipeline接口的具体实现类里的查杀方法才对。

·其实是个人ctrl+左键点习惯了,应该去找具体的实例的,可能无法直接跳转过去,需要自己按照继承关系去找。反正记住:接口并不具体实现方法


查看原文:《tomcat内存马再回头、找查杀工具底层类》

评论:0   参与:  2