Skip to content

[文档共建] Java Servlet 容器简介与源码翻阅指南 #75

@ReaJason

Description

@ReaJason

两个月没写博客了,最近想到一个总结性的课题,刚好也可以总结这几年做的一些东西,分享出来大家也能一起学习下。顺便希望攻防大佬能分享些中间件下可用于攻击场景的特殊机制。

前言

这几年一直在写 Java RASP,因为需要给 Java 常见中间件编写流量捕获的切点,以及攻防相关的切点,调试了几乎所有的中间件部分源码,最近一段时间也一直在做 MemShellParty 开源项目,该项目适配了所有常见的 Java 中间件内存马注入方式,编写代码之余为了方便在很多注入点,也在项目代码注释中标记了一些类名和 jar 包的位置,方便下次调试快速拿到 jar 包进行调试定位问题。

MemShellPary issue #74@zema1 这位久经沙场的大佬也表示只比较熟悉 Tomcat,其他不太熟悉,想必其他小伙伴更是如此了,为了能更加用好 MemShellPary 这个项目,我们需要好好了解一下目标环境的一些不同,也方便想做中间件相关武器化的朋友提供一些可参考的类源码标记,快速找到 jar 包翻阅感兴趣的代码片段。

覆盖范围

  1. 中间件的 Servlet 容器实现使用的什么?实际上很多中间件使用的是 Tomcat 中 Catalina 这个 Servlet 容器实现。
  2. 中间件 Web 组件注册和调用相关的源代码在哪个类中,调试该在哪个地方打断点?
  3. 如何构建中间件的 Docker 镜像?Dockerfile 分享/docker-compose 分享。
  4. 中间件有哪些特征可用于中间件识别?
  5. 中间件在漏洞利用时的特殊机制?

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationhelp wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions