<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    CVE-2021-34429 Jetty WEB-INF 信息泄露

    VSole2021-07-28 08:08:56

    描述

           可以使用一些編碼字符來制作 URI,以訪問WEB-INF目錄的內容和/或繞過一些安全限制。

    影響

            默認合規模式允許帶有包含 %u002e 段的 URI 的請求訪問 WEB-INF 目錄中的受保護資源。例如,/%u002e/WEB-INF/web.xml可以檢索 web.xml 文件的請求。這可能會泄露有關 Web 應用程序實現的敏感信息。同樣,編碼的空字符可能會阻止正確的規范化,因此 /.%00/WEB-INF/web.xml cal 也會檢索 web.xml 文件。

    分析

    在 9.4.37 之前,Jetty 由兩條防線保護免受這種攻擊方式:

    • URI 首先被解碼,然后對...序列進行歸一化。雖然這不符合 RFC,但它確實刪除了已編碼或參數化的相關段,并使生成的 URI 路徑免受任何重復規范化(通常通過 URI 操作和文件系統映射完成)的影響。
    • FileResource級處理的絕對路徑和資源的規范路徑之間的差額作為別名,因此資源不會被默認服務。

    在 9.4.37 之前,FileResource該類被替換為PathResource不將規范化差異視為別名的類。然后版本 9.4.37 更新了 URI 解析以符合 RFC,因為在解碼之前完成規范化。這允許對不會被純 RFC URI 規范化但被文件系統規范化的相對路徑段進行各種編碼或修飾,從而允許通過別名訪問受保護的資源。特別是通過在規范化后解碼 URI,它使它們容易受到任何后續規范化(可能在檢查安全約束之后)改變 URI 的單一性。這種額外的規范化通常會被 URI 操作代碼和文件系統所破壞。

    隨著 Jetty 版本 9.4.43、10.0.6、11.0.6,我們恢復了幾道防線:

    • URI 首先被解碼,然后被規范化,這不是嚴格按照當前的 RFC。由于規范化是在解碼后完成的,因此生成的 URI 路徑不會被進一步規范化,并且引用的資源在通過安全約束后也不容易更改。
    • 在 URI 解析過程中,會檢查一些特定的段/字符,這些段/字符可能會被應用程序模糊地看到(例如,編碼點段、編碼分隔符、空段、參數化點段和/或空字符)。因此,即使 Jetty 代碼正確處理這些 URI,也存在應用程序可能不會這樣做的風險,因此除非設置了特定的合規模式,否則此類請求會被 400 Bad Request 拒絕。
    • 一旦通過初始 URI 處理解碼和規范化,Jetty 將不會在其自己的資源處理中再次解碼或規范化接收到的 URI。這避免了雙重解碼攻擊的可能性。
    • ContextHandler.getResource(String path)方法始終檢查傳遞的路徑是否已規范化,僅在 AliasChecker 批準的情況下才接受非正常路徑。這是Jetty資源服務直接使用的方法。
    • API 方法像ServletContext.getResource(String path)將在調用之前規范化ContextHandler.getResource(String path)。這允許應用程序使用非正常路徑。
    • PathResource班現在認為在請求資源的名稱和發現的資源名稱之間的正常/規范名稱的任何差異是一個別名,如經明確,這將只投放AliasChecker

    總之,防御是檢測特定已知 URI 別名攻擊的前線,最后一道防御是不允許任何資源別名。


    解決方法

            可以部署一些 Jetty重寫規則來將原始請求 URI 中包含編碼點段或空字符的任何請求重寫為已知未找到的資源:

    <Call name="addRule">  <Arg>    <New class="org.eclipse.jetty.rewrite.handler.RewriteRegexRule">      <Set name="regex">.*/(?:\.+/)+.*Set>      <Set name="replacement">/WEB-INF/Not-FoundSet>    New>  Arg>Call><Call name="addRule">  <Arg>    <New class="org.eclipse.jetty.rewrite.handler.ValidUrlRule"/>  Arg>Call>
    
    jettyweb-inf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    可以使用一些編碼字符來制作 URI,以訪問WEB-INF目錄的內容和/或繞過一些安全限制。
    Eclipse Jetty是一個Java Web 服務器和Java Servlet容器。雖然 Web 服務器通常與向人們提供文檔相關聯,但 Jetty 現在通常用于機器對機器的通信,通常在更大的軟件框架內。Jetty 是作為Eclipse Foundation的一部分開發的免費和開源項目。Web 服務器用于Apache ActiveMQ、Alfresco、Scalatra、Apache Geron
    F-vuln(全稱:Find-Vulnerability)是為了自己工作方便專門編寫的一款自動化工具,主要適用于日常安全服務、滲透測試人員和RedTeam紅隊人員,它集合的功能包括:存活IP探測、開放端口探測、web服務探測、web漏洞掃描、smb爆破、ssh爆破、ftp爆破、mssql爆破等其他數據庫爆破工作以及大量web漏洞檢測模塊。
    最常見的情況是使用 Tomcat 作為 Java Web 服務器,使用 Spring 提供的開箱即用的強大 的功能,并依賴其他開源庫來完成負責的業務功能實現
    干貨|最全的Jboss漏洞復現筆記
    但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。
    前段時間Confluence發布了CVE-2021-26085補丁,剛好之前分析過Confluence的漏洞,免去了搭建漏洞分析環境的麻煩,因此分析下這個漏洞。 分析過程 漏洞點定位 這個漏洞爆出來已經有一段時間了,所以已經有公開的POC了
    Jboss是一個基于J2EE的開放源代碼的應用服務器。JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3的規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。
    JBoss是一個基于J2EE的開放源代碼應用服務器,代碼遵循LGPL許可,可以在任何商業應用中免費使用;JBoss也是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。在J2EE應用服務器領域,JBoss是發展最為迅速的應用服務器。由于JBoss遵循商業友好的LG
    RDP憑證本機RDP密碼抓取本機RDP密碼是一個我們常遇到的場景,通常使用mimikatz抓取RDP密碼。當系統為win10或2012R2以上時,默認在內存緩存中禁止保存明文密碼,這時抓取的明文密碼為空。上不了線的情況下,也可以在webshell中來dump內存,保存到本地解密即可。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类