JSP指令碼漏洞面面觀_漏洞研究

來源:互聯網
上載者:User
  伺服器漏洞是安全問題的起源,駭客對網站的攻擊也大多是從尋找對方的漏洞開始的。所以只有瞭解自身的漏洞,網站管理員才能採取相應的對策,阻止外來的攻擊。下面介紹一下一些伺服器(包括Web伺服器和JSP伺服器)的常見漏洞。   

  Apache泄露重寫的任意檔案漏洞是怎麼回事?   

  在Apache1.2以及以後的版本中存在一個mod_rewrite模組,它用來指定特殊URLS在網路伺服器檔案系統上所映射的絕對路徑。如果傳送一個包含正確表達參數的重寫規則,攻擊者就可以查看目標主機上的任意檔案。   

  下面舉例說明重寫規則指令(其中第一行只有是包含漏洞的):   

  RewriteRule /test/(.*) /usr/local/data/test-stuff/$1  
  RewriteRule /more-icons/(.*) /icons/$1  
  RewriteRule /go/(.*) http://www.apacheweek.com/$1   

  受影響的系統:   

  1)Apache 1.3.12  
  2)Apache 1.3.11win32  
  3)Apache 1.2.x   

  不受影響系統:Apache 1.3.13   

  怎樣解決在HTTP請求中添加特殊字元導致暴露JSP原始碼檔案?  
  Unify eWave ServletExec 是一個 Java/Java Servlet 引擎外掛程式,主要用於 WEB 伺服器,例如:Microsoft IIS, Apache, Netscape Enterprise 伺服器等等。  
  當一個 HTTP 請求中添加下列字元之一,ServletExec 將返回 JSP 原始碼檔案。  
.   

  %2E  
  +  
  %2B  
  \  
  %5C  
  %20  
  %00    

  成功的利用該漏洞將導致泄露指定的JSP檔案的原始碼,例如:使用下面的任意一個URL請求將輸出指定的JSP檔案的原始碼:   

  1)http://target/directory/jsp/file.jsp.   
  2)http://target/directory/jsp/file.jsp%2E  
  3)http://target/directory/jsp/file.jsp+   
  4)http://target/directory/jsp/file.jsp%2B  
  5)http://target/directory/jsp/file.jsp\   
  6)http://target/directory/jsp/file.jsp%5C  
  7)http://target/directory/jsp/file.jsp%20   
  8)http://target/directory/jsp/file.jsp%00   

  受影響的系統:   

  1)Unify eWave ServletExec 3.0c  
  2)Sun Solaris 8.0  
  3)Microsoft Windows 98  
  4)Microsoft Windows NT 4.0  
  5)Microsoft Windows NT 2000  
  6)Linux kernel 2.3.x  
  7)IBM AIX 4.3.2  
  8)HP HP-UX 11.4   

  解決方案:   

  如果沒有使用任何靜態頁面或映像,可以配置一個預設的 servlet,並將"/"映射到這個預設的 servlet。這樣當收到一個未映射到某個 servlet 的 URL 時,這個預設的servlet 就會被調用。在這種情況下,預設的 servlet 可以僅僅返回"未找到檔案"。如果使用了靜態頁面或映像,仍然可以作這樣的配置,但是需要讓這個預設的servlet 處理對合法的靜態頁面和映像的請求。  
  另一種可能就是將*.jsp+、*.jsp.和*.jsp\等映射到一個 servlet,而該servlet只是返回"未找到檔案"。對於*.jsp%00和*.jsp%20這樣的情況,映射應以未經編碼的形式輸入。例如,對於*.jsp%20的映射應輸入"*.jsp "。注意%20被轉換成一個空白字元。   

  Tomcat有哪些漏洞?  

  Tomcat 3.1 存在暴露網站路徑問題   

  Tomcat 3.1 是在 Apache 軟體環境下開發的一個支援 JSP 1.1 和 Servlets 2.2 的軟體。它存在一個安全問題當發送一個不存在的 jsp 請求時會暴露網站上網頁的全路徑。   

  舉例:  
  http://narco.guerrilla.sucks.co:8080/anything.jsp   

  結果顯示:  
Error: 404   
Location: /anything.jsp   
JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found   

  解決方案:升級到新版本   

  Tomcat 暴露JSP檔案內容   

  Java Server Pages (JSP)類型的檔案是以'.jsp'副檔名在Tomcat 上註冊,Tomcat 是檔案名稱大小寫敏感的,'.jsp'和'.JSP'是不同類型的副檔名。如果提交有'.JSP'的連結給Tomcat,而Tomcat找不到'.JSP'就會以預設的'.text'檔案類型來響應請求。因為在NT系統中大小寫檔案名稱是非敏感的,所以被請求的檔案會以文本的形式送出。   

  如果在UNIX伺服器上會出現"file not found"的錯誤資訊。   

  如何在windows下對Tomcat實施代碼保護   

  Tomcat的一些版本有泄露原始碼的漏洞,如果在瀏覽器中調用JSP頁面時將該檔案的尾碼改成大寫,這個JSP檔案的原始碼將完全輸出到瀏覽器中(也許瀏覽器視窗中什麼都沒有,這時你只需查看HTML源檔案就可以發現)。如此一來,網站的原始碼是不是都會暴露在互連網上那?  
  不用擔心,解決方案很簡單,把各種尾碼的組合全部寫到Tomcat_Home\conf \web.xml裡就可以了,這樣Tomcat會將不同尾碼名的JSP分開對待,就不會泄露代碼了。  

    jsp  
    *.jsp  


    jsP  
    *.jsP  


   ?lt;servlet-name>jSp  
    *.jSp  


    jSP  
    *.jSP  


    Jsp  
    *.Jsp  


    JsP  
    *.JsP  


    JSp  
    *.JSp  


    JSP  
    *.JSP  

  Allair Jrun漏洞有哪些漏洞?   

  Allair JRUN 非法讀取 WEB-INF 漏洞  
  在Allaire 的 JRUN 伺服器 2.3版本中存在一個嚴重的安全性漏洞。它允許一個攻擊者在 JRun 3.0 伺服器中查看 WEB-INF 目錄。  
  如果使用者在提交 URL 請求時在,通過附加一個"/"使該 URL 成為畸形的 URL,這時 WEB-INF 下的所有子目錄將會暴露出來。攻擊者巧妙的利用該漏洞將能夠遠程獲得目標主機系統中 WEB-INF 目錄下的所有檔案的讀取許可權。  
  例如使用下面這個 URL 將會暴露 WEB-INF 下的所有檔案:  
http://site.running.jrun:8100//WEB-INF/   

  受影響的系統:Allaire JRun 3.0   

  解決方案:下載並安裝補丁:   

Allaire patch jr233p_ASB00_28_29  
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip  
Windows 95/98/NT/2000 and Windows NT Alpha  
Allaire patch jr233p_ASB00_28_29tar  
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz  
UNIX/Linux patch - GNU gzip/tar    

  Allaire JRUN 2.3 查看任意檔案漏洞   

  Allaire 的 JRUN 伺服器 2.3上存在多重顯示代碼漏洞。該漏洞允許攻擊者在 WEB 伺服器上查看根目錄下的任意檔案的原始碼。  
  JRun 2.3 使用 Java Servlets 解析各種各樣類型的頁面(例如:HTML, JSP等等)。基於rules.properties 和 servlets.properties 的檔案設定,可能利用URL首碼"/servlet/"調用任何servlet。  
  它可能使用 Jrun 的 SSIFilter servlet 在目標系統上檢索任意的檔案。下列 2 個例子顯示出能被用來檢索任意的檔案的 URLs :   

http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../t est.jsp   
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../boot.ini   
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../. ./../../../../winnt/repair/sam  
http://jrun:8000/servlet/ssifilter/../../test.jsp   
http://jrun:8000/servlet/ssifilter/../../../../../../../boot.ini   
http://jrun:8000/servlet/ssifilter/../../../../../../../winnt/repair/sam._    

  注意:假設JRun在主機" jrun "上運行,連接埠8000。   

  受影響的系統:Allaire JRun 2.3.x   

  解決方案:下載並安裝補丁:   

Allaire patch jr233p_ASB00_28_29  
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip  
Windows 95/98/NT/2000 and Windows NT Alpha  
Allaire patch jr233p_ASB00_28_29tar  
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz  
UNIX/Linux patch - GNU gzip/tar   

  Allaire JRUN 2.3遠程執行任意命令漏洞   

  Allaire 的 JRUN 伺服器 2.3上存在一個安全性漏洞,允許遠端使用者把在 WEB 伺服器上的任意檔案作為JSP代碼編譯/執行。   如果URL請求的目標檔案使用了首碼"/servlet/",則JSP解釋執行功能被啟用。這時在使用者請求的目標檔案路徑中使用"../",就有可能訪問到 WEB 伺服器上根目錄以外的檔案。在目標主機上利用該漏洞請求使用者輸入產生的一個檔案,將嚴重威脅到目標主機系統的安全。   
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.