GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - safe6Sec/MemoryShell: 内存马学习

BranchesTags
Open more actions menu

Latest commit

 

History

34 Commits
34 Commits

Folders and files

NameName
Last commit message
Last commit date
agent
agent
 
 
img
img
 
 
lib
lib
 
 
src/main
src/main
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
pom.xml
pom.xml
 
 

Repository files navigation

MemoryShell

内存马学习,持续更新。

目录

文章

  • java内存马分析(一) 环境搭建
  • java内存马分析(二) Servlet内存马
  • java内存马分析(三) Filter内存马
  • java内存马分析(四) Listener内存马
  • java内存马分析(五) weblogic注入内存马
  • java内存马分析(六) Controller内存马
  • interceptor内存马已完成,文章待更新
  • agent内存马已完成,文章待更新

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

Readme
Activity

Stars

173 stars

Watchers

5 watching

Forks

22 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.