From ff49fe1f0c1d582ca48e48f140d563507221d1cc Mon Sep 17 00:00:00 2001 From: ReaJason Date: Tue, 12 Aug 2025 22:14:14 +0800 Subject: [PATCH] fix: rm landing page --- web/.env | 3 +- web/.env.production | 3 +- web/bun.lockb | Bin 208796 -> 208796 bytes web/package.json | 2 +- web/src/config.ts | 1 - web/src/pages/landing.tsx | 296 -------------------------------------- web/src/router.tsx | 10 +- 7 files changed, 4 insertions(+), 311 deletions(-) delete mode 100644 web/src/pages/landing.tsx diff --git a/web/.env b/web/.env index 118b5060..1f867a91 100644 --- a/web/.env +++ b/web/.env @@ -1,3 +1,2 @@ VITE_APP_API_URL=http://127.0.0.1:8080 -VITE_APP_BASE_PATH=/ -VITE_APP_LANDING=false \ No newline at end of file +VITE_APP_BASE_PATH=/ \ No newline at end of file diff --git a/web/.env.production b/web/.env.production index 2d43daf7..7ff78958 100644 --- a/web/.env.production +++ b/web/.env.production @@ -1,3 +1,2 @@ VITE_APP_API_URL= -VITE_APP_BASE_PATH=/ -VITE_APP_LANDING=true \ No newline at end of file +VITE_APP_BASE_PATH=/ \ No newline at end of file diff --git a/web/bun.lockb b/web/bun.lockb index e3f8f9e02fc0ebf6cced817f337432fbe9def275..f00f21a7510ac2be8c4aa4df0e16f4ae65a2c2c9 100755 GIT binary patch delta 8999 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 U`qK?^sqBaUE9%D|kjGd2KjgeoS^xk5 delta 9024 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 diff --git a/web/src/pages/landing.tsx b/web/src/pages/landing.tsx deleted file mode 100644 index 7824d522..00000000 --- a/web/src/pages/landing.tsx +++ /dev/null @@ -1,296 +0,0 @@ -import {motion} from "framer-motion"; -import { - CombineIcon, - GithubIcon, - MinimizeIcon, - ServerIcon, - ShellIcon, - Shield, - ShieldCheckIcon, - TerminalIcon, - ZapIcon, -} from "lucide-react"; -import {NavLink} from "react-router-dom"; -import {LineShadowText} from "@/components/magicui/line-shadow-text"; -import {RainbowButton} from "@/components/magicui/rainbow-button"; -import {useTheme} from "@/components/theme-provider"; -import {Badge} from "@/components/ui/badge"; -import {Button} from "@/components/ui/button"; -import {Card, CardContent, CardDescription, CardHeader, CardTitle} from "@/components/ui/card"; - -export default function LandingPage() { - const features = [ - { - icon: , - title: "Non-Intrusive", - description: - "Generated memshells don't interfere with normal middleware traffic, even with multiple shells injected.", - }, - { - icon: , - title: "High Availability", - description: "Comes with comprehensive CI integration tests, covering mainstream middleware for reliability.", - }, - { - icon: , - title: "Minimal Size", - description: "The core code of the memshell is kept as concise as possible for efficient transfer and injection.", - }, - { - icon: , - title: "Strong Compatibility", - description: "Covers common middleware and frameworks like Tomcat, WebLogic, and Spring.", - }, - ]; - - const supportedMiddleware = [ - "Tomcat", - "Jetty", - "GlassFish", - "Payara", - "Resin", - "SpringWebMVC", - "SpringWebFlux", - "XXL-JOB", - "JBossAS", - "JBossEAP", - "WildFly", - "Undertow", - "WebLogic", - "WebSphere", - "BES", - "TongWeb", - "InforSuite AS", - "Apusic AS", - "Primeton", - ]; - const supportedShells = [ - "Godzilla", - "Behinder", - "AntSword", - "Suo5", - "Neo-reGeorg", - "Command Execution", - "Custom Shell", - ]; - - const theme = useTheme(); - const shadowColor = theme.theme === "dark" ? "#ffffff" : "#000000"; - - return ( -
-
-
-
- -
- - For Security Research & Authorized Testing Only -
-

- - MemShell - - Party - - -

-

- A self-hosted, visual platform for one-click generation of Java memory shells for common middleware and - frameworks. The ultimate learning platform for security researchers. -

-
- - - - - - - - -
-
- -
-
-
-

Why Choose MemShellParty?

-

Designed for modern offensive and defensive scenarios.

-
-
- {features.map((feature, index) => ( - - - - {feature.icon} - {feature.title} - - - {feature.description} - - - - ))} -
-
-
- -
-
-
-

Extensive Support Matrix

-

- Compatible with a wide range of industry-standard technologies. -

-
-
- - - - - - Supported Middleware - - - - {supportedMiddleware.map((tech) => ( - - {tech} - - ))} - - - - - - - - - Supported Shell Tools - - - - {supportedShells.map((shell) => ( - - {shell} - - ))} - - - -
-
-
- -
-
-
-

Get Your Shell in 3 Simple Steps

-

A streamlined process from selection to generation.

-
-
- -
- 1 -
-

Select Middleware

-

Choose your target environment like Tomcat or Spring.

-
- -
- 2 -
-

Configure Shell

-

Pick a shell type and set parameters like passwords or keys.

-
- -
- 3 -
-

Generate Payload

-

Click generate to get the final payload for your operation.

-
-
-
-
- - {/* --- Final CTA Section --- */} -
-
-

Ready to Join the Party?

-

- Visit the GitHub repository to start your memshell exploration, or contribute to the project! -

- -
-
- - {/* --- Footer --- */} -
-
-
-

MemShellParty

-

- Built with ❤️ by{" "} - - ReaJason - -

-
-
-
-
- ); -} diff --git a/web/src/router.tsx b/web/src/router.tsx index b397c40d..a4dfb4d8 100644 --- a/web/src/router.tsx +++ b/web/src/router.tsx @@ -1,7 +1,6 @@ import {createHashRouter} from "react-router-dom"; import RootLayout from "@/components/layouts/root-layout"; import {env} from "@/config"; -import LandingPage from "@/pages/landing"; import MemShellPage from "@/pages/memshell"; import ProbeShellPage from "@/pages/probeshell"; import type {MemShellFormSchema} from "@/types/schema"; @@ -42,13 +41,6 @@ const parseUrlParams = (searchParams: URLSearchParams): Partial; - } - return ; -} - export const router = createHashRouter( [ { @@ -57,7 +49,7 @@ export const router = createHashRouter( children: [ { index: true, - element: , + element: , loader: ({ request }) => { const url = new URL(request.url); return parseUrlParams(url.searchParams);