内存马这个词,很多人第一次听到是在应急响应的场景里:服务器上找不到可疑文件,流量看着也正常,但攻击者就是能执行命令。也有另一类人,做代码审计或渗透测试,知道内存马这个概念,却说不清 Listener 型、Filter 型、Servlet 型到底差在哪,更别说自己写一个。

这份资料合集解决的正是这种「听过但没搞懂」的状态。它不是入门课,默认你已经能看懂 Java Web 的基本请求流程,会配置 Tomcat,知道什么是 Filter 和 Servlet。如果这些还模糊,建议先补上再看,否则前面几篇会读得很吃力。

先搞清楚它到底藏在哪一层

内存马的核心不在于「写进内存」这个动作,而在于它寄生在容器的哪个组件里、通过什么方式被触发。资料里从 Tomcat 的 Listener 型开始讲,这个顺序是合理的——Listener 是最容易被忽略的一类,因为它不直接参与请求分发,排查时常常被跳过。理解它之后,再看 Filter 型和 Servlet 型就是同一套思路的延伸。

配套要问自己的问题是:一个 Listener 内存马注册进去之后,在 Tomcat 的哪个生命周期节点生效?通过什么接口能列出来?如果答不上来,说明只是记住了概念。

WebSocket 和 Executor 不是同一类问题

Tomcat WebSocket 内存马那篇值得单独花时间。WebSocket 的注册机制和普通 HTTP 请求不一样,它走的是握手升级流程,注入点也就落在不同的地方。很多人能理解 Filter 内存马,但换到 WebSocket 就卡住,原因是没有把协议层面的差异和容器层面的注册机制对应起来。

Executor 内存马则是另一个方向。它不挂载在请求链路上,而是利用线程池执行逻辑,触发条件更隐蔽。看完这两部分,你应该能回答:同样是在 Tomcat 里,为什么 WebSocket 内存马和 Executor 内存马的检测思路完全不同?

从具体漏洞看注入路径

资料里涉及 Spring WebFlux、CVE-2022-22947、Shiro 反序列化这几条线。这部分的价值不是让你背 CVE 编号,而是把「漏洞利用」和「内存马落地」串起来。比如 Shiro 反序列化注入冰蝎内存马,重点在于反序列化链条能把字节码送进去,而冰蝎的内存马是帮你把这段字节码组织成可用的形式。两者是配合关系,不是一回事。

Spring WebFlux 那篇需要注意:WebFlux 是响应式栈,和 Spring MVC 的组件模型差别不小,内存马的落点也不一样。如果你只熟悉 Servlet 栈,看这篇会有明显的不适感,这是正常的。

Resin、Linux 下的处理,是补盲区

大多数人的经验集中在 Tomcat 和 Spring 上,Resin 回显及内存马这部分属于跨容器的补充。它的意义在于提醒你:内存马不是 Tomcat 专属,换一个容器,注册机制和检测方式都要重新过一遍。

Linux 下内存马的部分则更偏实战环境,涉及进程、类加载状态等和操作系统层面的观察。如果你平时只在本地 Tomcat 里做实验,这部分会暴露你对生产环境排查手段的陌生。

看完之后你应该能回答的问题

  • Listener、Filter、Servlet 三类内存马,各自的注册入口和触发时机有什么区别?
  • 给定一个已经确认存在内存马的 Tomcat 进程,你会按什么顺序去定位它?
  • Shiro 反序列化注入内存马,反序列化链条和内存马本身分别负责什么?
  • WebFlux 场景下,内存马的注入思路和 Spring MVC 差在哪里?
  • 换到 Resin,前面总结的检测方法哪些还能用,哪些会失效?

这份资料偏原理和案例,不是拿来即用的工具集。建议边看边在本地环境复现,尤其是 Listener 和 Filter 两类,动手注册一次比读三遍都管用。遇到只有 PDF 没有配套代码的部分,自己按描述写一遍,卡住的地方往往就是你真正缺的那块知识。

先知社区-内存马资料合集

深入理解内存马原理与实战技巧

编辑点评

系统学习内存马技术,涵盖多种Web框架与服务器,实战性强。

⭐ 编辑推荐

全面解析内存马原理,实战案例丰富,助你掌握Web安全防护。

课程亮点

• 涵盖多种Web框架与服务器
• 实战案例丰富
• 深入浅出讲解内存马原理

课程目录

先知社区-内存马资料合集说明.png  [493.5 KB]
Resin回显及内存马.pdf  [3.4 MB]
从CVE-2022-22947到Spring WebFlux内存马与哥斯拉.pdf  [7.0 MB]
Tomcat WebSocket内存马原理浅析.pdf  [268.4 KB]
Tomcat 内存马(一)Listener型.pdf  [1.4 MB]
Executor内存马的实现.pdf  [5.6 MB]
利用shiro反序列化注入冰蝎内存马.pdf  [5.7 MB]
Linux下内存马进阶植入技术.pdf  [616.6 KB]
java Filter内存马分析.pdf  [2.9 MB]
以初学者角度调试filter内存马.pdf  [6.8 MB]
JAVA内存马的“一生”.pdf  [7.5 MB]
WebSocket 内存马,一种新型内存马技术.pdf  [1.0 MB]
SpringBoot拦截器注入内存马实验.pdf  [1.7 MB]
Java Agent 从入门到内存马.pdf  [1.7 MB]
Spring Interceptor 内存马分析.pdf  [1.7 MB]
Executor内存马的实现(二).pdf  [12.4 MB]
java内存马分析集合.pdf  [7.2 MB]
初探Java安全之Spring内存马.pdf  [7.5 MB]
Agent内存马的自动分析与查杀.pdf  [984.3 KB]
探索Filter型Tomcat内存马的免杀.pdf  [1002.1 KB]
利用Fastjson注入Spring内存马.pdf  [668.5 KB]
java内存马.pdf  [681.6 KB]
论如何优雅的注入Java Agent内存马.pdf  [530.3 KB]
JSP内存马研究.pdf  [1.1 MB]
利用 PHP-FPM 做内存马的方法.pdf  [378.1 KB]
Shiro反序列化与Tomcat内存马注入学习.pdf  [884.5 KB]
Java内存马:一种Tomcat全版本获取StandardContext的新方法.pdf  [1.0 MB]
浅析JSP型内存马.pdf  [667.3 KB]
从一个被Tomcat拒绝的漏洞到特殊内存马.pdf  [502.9 KB]
RuoYi 可用内存马.pdf  [2.6 MB]
Weblogic Xmldecoder反序列化中的命令回显与内存马总结.pdf  [7.7 MB]
Python 内存马分析.pdf  [698.5 KB]
Tomcat 内存马(二)Filter型.pdf  [1.4 MB]
从Spring内存马检测到隐形马.pdf  [779.1 KB]

适合人群

  • Web安全爱好者
  • 后端开发工程师
  • 安全研究人员

学习收获

掌握内存马原理
学会实战应用
提升Web安全防护能力

祝您学习愉快!

学有所成,前程似锦!