Java:内存🐎

outman
3
2025-07-06

传统内存🐎

Listener(监听器)

收到http的请求,web容器自动调用 ServletRequestListener.requestInitialized(),在这执行恶意代码

Listener->Filter->Servlet 监听器作为请求处理第一环,可以确保优先执行

Servlet才是正常代码部分,恶意代码会驻留在内存里,不会留下痕迹

Filter(过滤器)

收到http请求,Tomcat 会通过StandardWrapperValue 创建 ApplicationFilterChain,依次调用所有匹配URL的Filter,攻击者设置/*模式,可以确优先执行

注入流程

  1. 1.通过反射从ServletRequest或ServletContext中提取StandardContext对象(管理Filter的容器)

  2. 2.利用doFilter(),创建恶意Filter和FilterDef

  3. 3.讲恶意Filter加入StandardContext.filterConfigs(存储Filter配置的Map)

  4. 4.创建FilterMap制定URL模式为/*,确保优先执行

框架内存🐎

内存🐎生成工具

需要mvn:https://github.com/pen4uin/java-memshell-generator

在线网站:https://party.memshell.news

思考

不管是Webshell工具还是生成项目都需要上传这些脚本后,内存马才能植入。

如何做到不需要执行上传的文件才直接注入内存马呢?

借助已知漏洞:通过反序列化,SSTI注入,RCE等漏洞,执行Java反射逻辑,注入内存马