内存马(Memory Webshell) —— 不落地文件、直接驻留 JVM 内存的持久化后门。本知识库从原理到实战、从攻击到检测,系统覆盖 Java 内存马的全部技术栈。
知识全景图
1 | ┌──────────────┐ |
章节导航
基础篇
00-前置知识 — Servlet 规范三大组件、Tomcat 内部架构、Java 反射与类加载机制
01-内存马概述 — 6 大分类体系、各类型对比矩阵、注入前提条件与生命周期
注入技术篇
02-Servlet型内存马 — 核心章节 Filter/Servlet/Listener 型,5 步注入详解,无 request 获取 Context
02.5-Valve与WebSocket型 — Tomcat Valve 管道、WebSocket 长连接马、Upgrade 自定义协议
03-Spring型内存马 — Controller 动态路由注册、Interceptor 拦截器注入、Spring 环境选型
04-Agent型内存马 — Instrumentation API、Javassist/ASM 字节码修改、Attach 与无文件加载
实战组合篇
05-反序列化与内存马 — TemplatesImpl 加载、CC/CB 利用链、Shiro/Fastjson/Log4j 场景
07-通信加密与隧道 — 冰蝎 AES 协议、哥斯拉定制加密、suo5 全双工隧道、流量伪装
进阶篇
08-中间件差异与高版本JDK — Jetty/Undertow/WebLogic 适配、JDK 9-17 模块系统绕过、Jakarta 命名空间
09-持久化与实战串联 — premain/SPI/WAR 持久化、Shiro/Fastjson/Log4j 全流程、卸载与清理
附录A-工具方法与调试 — getFieldValue 等通用工具方法、完整 AES 加解密实现、调试排错指南
防御篇
06-检测与防御 — 四维检测体系、Arthas 实战、RASP 原理、攻防对抗矩阵
靶场环境
位置:/Users/lucy/Desktop/AI/内存马/lab/vulnerable-app/
启动:cd lab/vulnerable-app && mvn spring-boot:run
依赖:JDK 8 + Maven 3.6+(建议同时装 JDK 17 用于第8章实验)
接口速查:
| 接口 | 用途 |
|---|---|
POST /api/inject/filter |
注入 Filter 型内存马 |
POST /api/inject/servlet |
注入 Servlet 型内存马 |
POST /api/inject/listener |
注入 Listener 型内存马 |
POST /api/inject/spring/controller |
注入 Controller 型内存马 |
POST /api/inject/spring/interceptor |
注入 Interceptor 型内存马 |
GET /api/status |
查看所有已注册组件(检测用) |
POST /api/deserialize/java |
Java 反序列化入口 |
POST /api/deserialize/fastjson |
Fastjson 解析入口 |
学习建议
入门路线(1-2 周):第0章 → 第1章 → 第2章 → 靶场实验
进阶路线(2-4 周):+ 第2.5章 → 第3章 → 第4章 → 第5章
实战路线(4-6 周):+ 第7章 → 第8章 → 第9章 → 附录A
防御路线(贯穿始终):第6章配合每个攻击章节对照学习
| 下一章 | |
|---|---|
| 00-前置知识 |