Skip to content

safe6Sec/MemoryShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MemoryShell

内存马学习,持续更新。

目录

文章

servlet内存马

原理: 创建servlet马封装成wrapper,获取StandardContext使用addChild添加内存马,最后配置映射关系。 详细步骤见代码。

filter内存马

原理: 三个关键对象

  • filterMaps变量:包含所有过滤器的URL映射关系
  • filterDefs变量:包含所有过滤器包括实例内部等变量
  • filterConfigs变量:包含所有与过滤器对应的filterDef信息及过滤器实例,进行过滤器进行管理

步骤:创建filter马,然后filterDef包装,standardContext利用addFilterDef添加filterDefs,然后配置filterMap映射关系,最后filterDef加到filterConfig 详细步骤见代码。

listener内存马

原理: 创建listener马,获取StandardContext使用addApplicationEventListener添加内存马。 详细步骤见代码。

挖掘思路

  • 通过正向添加,然后从分析上下文。找对应存储的变量,分析对象构成。然后结合反射进行动态注册。
  • 分析正向添加底层实现原理,然后结合反射实现动态注册。

About

内存马学习

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages