mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
feat: support servletNameFilter for TomcatFilterProbe
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@ import java.io.IOException;
|
||||
* @since 2025/08/25
|
||||
*/
|
||||
@WebServlet("/biginteger")
|
||||
public class BigIntegerClassLaoderServlet extends ClassLoader implements Servlet {
|
||||
public class BigIntegerClassLoaderServlet extends ClassLoader implements Servlet {
|
||||
|
||||
@Override
|
||||
public void init(ServletConfig config) throws ServletException {
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.*;
|
||||
|
||||
import java.io.IOException;
|
||||
+4
-6
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.*;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -8,12 +6,12 @@ import java.io.IOException;
|
||||
* @author Wans
|
||||
* @since 2025/08/25
|
||||
*/
|
||||
public class BigIntegerClassLaoderServlet extends ClassLoader implements Servlet {
|
||||
public class BigIntegerClassLoaderServlet extends ClassLoader implements Servlet {
|
||||
|
||||
public BigIntegerClassLaoderServlet() {
|
||||
public BigIntegerClassLoaderServlet() {
|
||||
}
|
||||
|
||||
protected BigIntegerClassLaoderServlet(ClassLoader parent) {
|
||||
protected BigIntegerClassLoaderServlet(ClassLoader parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@@ -32,7 +30,7 @@ public class BigIntegerClassLaoderServlet extends ClassLoader implements Servlet
|
||||
String data = req.getParameter("data");
|
||||
try {
|
||||
byte[] bytes = decodeBigInteger(data);
|
||||
new BigIntegerClassLaoderServlet(Thread.currentThread().getContextClassLoader()).defineClass(null, bytes, 0, bytes.length).newInstance();
|
||||
new BigIntegerClassLoaderServlet(Thread.currentThread().getContextClassLoader()).defineClass(null, bytes, 0, bytes.length).newInstance();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
-3
@@ -1,7 +1,4 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@@ -0,0 +1,24 @@
|
||||
import jakarta.servlet.*;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2026/1/11
|
||||
*/
|
||||
public class ServletNameTestFilter implements Filter {
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
}
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.annotation.MultipartConfig;
|
||||
import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
+12
-5
@@ -1,15 +1,22 @@
|
||||
package jakarta;
|
||||
|
||||
import jakarta.servlet.*;
|
||||
import jakarta.servlet.annotation.WebFilter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/23
|
||||
* @since 2025/1/3
|
||||
*/
|
||||
public class EmptyFilter implements Filter {
|
||||
public class UrlMappingTestFilter implements Filter {
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||
chain.doFilter(request, response);
|
||||
@@ -11,7 +11,7 @@
|
||||
</welcome-file-list>
|
||||
<servlet>
|
||||
<servlet-name>test</servlet-name>
|
||||
<servlet-class>jakarta.TestServlet</servlet-class>
|
||||
<servlet-class>TestServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>test</servlet-name>
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>upload</servlet-name>
|
||||
<servlet-class>jakarta.UploadServlet</servlet-class>
|
||||
<servlet-class>UploadServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>upload</servlet-name>
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>java-deserialize</servlet-name>
|
||||
<servlet-class>jakarta.JavaReadObjServlet</servlet-class>
|
||||
<servlet-class>JavaReadObjServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>java-deserialize</servlet-name>
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>b64</servlet-name>
|
||||
<servlet-class>jakarta.Base64ClassLoaderServlet</servlet-class>
|
||||
<servlet-class>Base64ClassLoaderServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>b64</servlet-name>
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
<servlet-class>jakarta.BigIntegerClassLaoderServlet</servlet-class>
|
||||
<servlet-class>BigIntegerClassLoaderServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>js</servlet-name>
|
||||
<servlet-class>jakarta.ScriptEngineServlet</servlet-class>
|
||||
<servlet-class>ScriptEngineServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>js</servlet-name>
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>reader</servlet-name>
|
||||
<servlet-class>jakarta.TestReaderServlet</servlet-class>
|
||||
<servlet-class>TestReaderServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>reader</servlet-name>
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>inputStream</servlet-name>
|
||||
<servlet-class>jakarta.TestInputStreamServlet</servlet-class>
|
||||
<servlet-class>TestInputStreamServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>inputStream</servlet-name>
|
||||
@@ -82,11 +82,27 @@
|
||||
</servlet-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>empty</filter-name>
|
||||
<filter-class>jakarta.EmptyFilter</filter-class>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<filter-class>UrlMappingTestFilter</filter-class>
|
||||
</filter>
|
||||
<filter>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<filter-class>ServletNameTestFilter</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>empty</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<url-pattern>/b64</url-pattern>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<url-pattern>/test</url-pattern>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<servlet-name>b64</servlet-name>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
</filter-mapping>
|
||||
</web-app>
|
||||
+4
-4
@@ -5,12 +5,12 @@ import java.io.IOException;
|
||||
* @author Wans
|
||||
* @since 2025/08/25
|
||||
*/
|
||||
public class BigIntegerClassLaoderServlet extends ClassLoader implements Servlet {
|
||||
public class BigIntegerClassLoaderServlet extends ClassLoader implements Servlet {
|
||||
|
||||
public BigIntegerClassLaoderServlet() {
|
||||
public BigIntegerClassLoaderServlet() {
|
||||
}
|
||||
|
||||
protected BigIntegerClassLaoderServlet(ClassLoader parent) {
|
||||
protected BigIntegerClassLoaderServlet(ClassLoader parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class BigIntegerClassLaoderServlet extends ClassLoader implements Servlet
|
||||
String data = req.getParameter("data");
|
||||
try {
|
||||
byte[] bytes = decodeBigInteger(data);
|
||||
new BigIntegerClassLaoderServlet(Thread.currentThread().getContextClassLoader()).defineClass(null, bytes, 0, bytes.length).newInstance();
|
||||
new BigIntegerClassLoaderServlet(Thread.currentThread().getContextClassLoader()).defineClass(null, bytes, 0, bytes.length).newInstance();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import javax.servlet.*;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2026/1/11
|
||||
*/
|
||||
public class ServletNameTestFilter implements Filter {
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.io.IOException;
|
||||
* @author ReaJason
|
||||
* @since 2025/1/3
|
||||
*/
|
||||
public class EmptyFilter implements Filter {
|
||||
public class UrlMappingTestFilter implements Filter {
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
<servlet>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
<servlet-class>BigIntegerClassLaoderServlet</servlet-class>
|
||||
<servlet-class>BigIntegerClassLoaderServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
@@ -79,11 +79,27 @@
|
||||
</servlet-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>godzilla</filter-name>
|
||||
<filter-class>EmptyFilter</filter-class>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<filter-class>UrlMappingTestFilter</filter-class>
|
||||
</filter>
|
||||
<filter>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<filter-class>ServletNameTestFilter</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>godzilla</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<url-pattern>/b64</url-pattern>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>urlMappingTestFilter</filter-name>
|
||||
<url-pattern>/test</url-pattern>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<servlet-name>b64</servlet-name>
|
||||
</filter-mapping>
|
||||
<filter-mapping>
|
||||
<filter-name>servletNameTestFilter</filter-name>
|
||||
<servlet-name>biginteger</servlet-name>
|
||||
</filter-mapping>
|
||||
</web-app>
|
||||
Reference in New Issue
Block a user