mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 23:11:52 +08:00
style: fmt code
This commit is contained in:
@@ -8,4 +8,4 @@ title: Apusic AS
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -6,4 +6,4 @@ title: BES
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -6,4 +6,4 @@ title: GlassFish
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: InforSuite AS
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -6,4 +6,4 @@ title: JBoss
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: Jetty
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: Resin
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: Tomcat
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: TongWeb
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -6,4 +6,4 @@ title: Undertow
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: WebLogic
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -8,4 +8,4 @@ title: WebSphere
|
||||
|
||||
## 动态添加 Filter
|
||||
|
||||
## 动态添加 Listener
|
||||
## 动态添加 Listener
|
||||
|
||||
@@ -63,7 +63,7 @@ public interface Filter {
|
||||
|
||||
shell 的目的,就是为了定义一个入口,我们能与 Web 服务器进行交互。在 Filter 中我们就是实现 doFilter 来满足需求,以下定义了一个命令回显的 FilterShell。
|
||||
|
||||
1. 一般而言,我们会为 FilterShell 注册 url-pattern 为 `/*`,这样无论访问哪个路径都能被调用到,而且为了绕过登录过滤器,我们会把 FilterShell 注册为 FilterChain 中的第一个过滤器。
|
||||
1. 一般而言,我们会为 FilterShell 注册 url-pattern 为 `/*`,这样无论访问哪个路径都能被调用到,而且为了绕过登录过滤器,我们会把 FilterShell 注册为 FilterChain 中的第一个过滤器。
|
||||
2. 交互的入口是 `request.getParameter` 支持两种方式传参。GET/POST 请求发送 `/?paramName=whoami`,也可以发送 POST 请求时使用 `application/x-www-form-urlencoded` 发送 body 参数。`multipart/form-data` 是不支持从 `request.getParameter` 获取参数的。
|
||||
3. 当 Filter 注册的 url-pattern 为 `/*` 时,我们拿到 cmd 参数,就可以执行命令并填充响应对象 `return` 结束请求,而在拿不到参数的时候就必须调用 `chain.doFilter(servletRequest, servletResponse)`,否则正常的业务就不会被执行。
|
||||
|
||||
|
||||
@@ -11,18 +11,15 @@ title: Java Servlet 规范内存马
|
||||
## Servlet 三大 Web 组件
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
href="/docs/servlet/servlet"
|
||||
title="Servlet 内存马"
|
||||
>创建独特的 entrypoint 访问路径</Card>
|
||||
<Card
|
||||
href="/docs/servlet/filter"
|
||||
title="Filter 内存马"
|
||||
>过滤器,遇事不决写点特别的东西然后中断请求</Card>
|
||||
<Card
|
||||
href="/docs/servlet/listener"
|
||||
title="Listener 内存马"
|
||||
>监听器,请求创建时触发,拿请求体和响应体做不该做的事情</Card>
|
||||
<Card href="/docs/servlet/servlet" title="Servlet 内存马">
|
||||
创建独特的 entrypoint 访问路径
|
||||
</Card>
|
||||
<Card href="/docs/servlet/filter" title="Filter 内存马">
|
||||
过滤器,遇事不决写点特别的东西然后中断请求
|
||||
</Card>
|
||||
<Card href="/docs/servlet/listener" title="Listener 内存马">
|
||||
监听器,请求创建时触发,拿请求体和响应体做不该做的事情
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## ServletContext
|
||||
|
||||
@@ -6,18 +6,18 @@ title: Listener
|
||||
|
||||
Servlet 事件监听器支持当 ServletContext、HttpSession 和 ServletRequest 状态变更时发送事件通知。每个事件类型的监听器都支持多个,并且开发者可以指定监听器的调用顺序。
|
||||
|
||||
| Listener 接口类 | 描述 |
|
||||
|--------------------------------------------------|---------------------------------|
|
||||
| javax.servlet.ServletContextListener | 在 ServletContext 创建以及销毁时 |
|
||||
| javax.servlet.ServletContextAttributeListener | 在 ServletContext 添加、移除或替换属性时 |
|
||||
| javax.servlet.http.HttpSessionListener | 在 HttpSession 创建和销毁时 |
|
||||
| javax.servlet.http.HttpSessionAttributeListener | 在 HttpSession 上添加、移除或替换属性 |
|
||||
| javax.servlet.http.HttpSessionIdListener | 在 HttpSession id 变化时 |
|
||||
| javax.servlet.http.HttpSessionActivationListener | 在 HttpSession 激活或钝化时 |
|
||||
| javax.servlet.http.HttpSessionBindingListener | 在 HttpSession 上对象绑定或解绑时 |
|
||||
| javax.servlet.ServletRequestListener | 在 ServletRequest 在将要被 Web 容器处理时 |
|
||||
| javax.servlet.ServletRequestAttributeListener | 在 ServletRequest 上添加、移除或替换属性时 |
|
||||
| javax.servlet.AsyncListener | 在异步操作开始、超时或完成时 |
|
||||
| Listener 接口类 | 描述 |
|
||||
| ------------------------------------------------ | ------------------------------------------ |
|
||||
| javax.servlet.ServletContextListener | 在 ServletContext 创建以及销毁时 |
|
||||
| javax.servlet.ServletContextAttributeListener | 在 ServletContext 添加、移除或替换属性时 |
|
||||
| javax.servlet.http.HttpSessionListener | 在 HttpSession 创建和销毁时 |
|
||||
| javax.servlet.http.HttpSessionAttributeListener | 在 HttpSession 上添加、移除或替换属性 |
|
||||
| javax.servlet.http.HttpSessionIdListener | 在 HttpSession id 变化时 |
|
||||
| javax.servlet.http.HttpSessionActivationListener | 在 HttpSession 激活或钝化时 |
|
||||
| javax.servlet.http.HttpSessionBindingListener | 在 HttpSession 上对象绑定或解绑时 |
|
||||
| javax.servlet.ServletRequestListener | 在 ServletRequest 在将要被 Web 容器处理时 |
|
||||
| javax.servlet.ServletRequestAttributeListener | 在 ServletRequest 上添加、移除或替换属性时 |
|
||||
| javax.servlet.AsyncListener | 在异步操作开始、超时或完成时 |
|
||||
|
||||
## ServletRequestListener
|
||||
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
{
|
||||
"title": "Java Servlet 规范内存马",
|
||||
"pages": [
|
||||
"servlet",
|
||||
"filter",
|
||||
"listener",
|
||||
"---Servlet 容器---",
|
||||
"...(container)"
|
||||
]
|
||||
"pages": ["servlet", "filter", "listener", "---Servlet 容器---", "...(container)"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user