首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

主流 JSP/Servlet 伺服器安全漏洞全景分析與防護指南

     編輯:關於JSP

Apache mod_rewrite 任意文件讀取漏洞

Apache 1.2+ 版本中 mod_rewrite 模組若配置不當,攻擊者可透過精心構造的重寫規則讀取伺服器任意文件。

# 含漏洞的規則示例
RewriteRule /test/(.*) /usr/local/data/test-stuff/$1
RewriteRule /more-icons/(.*) /icons/$1
RewriteRule /go/(.*) https://www.apacheweek.com/$1

受影響版本: Apache 1.3.12、1.3.11 Win32、1.2.x
修復版本: Apache 1.3.13

ServletExec JSP 源碼洩露

Unify eWave ServletExec 3.0c 在 HTTP 請求 URL 附加特殊字符時,會返回 JSP 源碼而非執行結果。

觸發字符: . %2E + %2B \ %5C %20 %00

利用示例: https://target/directory/jsp/file.jsp%2E

解決方案: 配置默認 Servlet 映射 / 返回 404,或將 *.jsp+ *.jsp. *.jsp\ 等映射到空 Servlet;%20 需映射為空格字符。

Tomcat 經典漏洞

1. Tomcat 3.1 絕對路徑洩露

請求不存在的 JSP(如 /anything.jsp)會在 404 錯誤中暴露完整物理路徑:/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp

修復: 升級新版本。

2. 大小寫擴展名導致源碼洩露

Tomcat 對 .jsp 大小寫敏感,Windows 下請求 index.JSP 會以文本形式輸出源碼(Unix 則報 404)。

防護: 在 web.xml 中註冊所有大小寫組合(*.jsp、*.JSP、*.JsP...)映射到 JSP Servlet。

Allaire JRun 多重高危漏洞

1. JRun 3.0 WEB-INF 目錄遍歷

URL 雙斜槓 //WEB-INF/ 可列出該目錄所有文件。
修補程式: jr233p_ASB00_28_29

2. JRun 2.3 任意文件讀取

利用 SSIFilter Servlet 遍歷目錄:
/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../test.jsp
/servlet/ssifilter/../../../../../../../winnt/repair/sam

3. JRun 2.3 遠程命令執行

請求 /servlet/jsp/../../path/to/temp.txt 可將任意文件作為 JSP 編譯執行。
同樣需安裝 jr233p_ASB00_28_29 補丁。

4. 範例文件洩露敏感信息

刪除 JRUN_HOME/servlets 下所有 .java/.class 及 JRUN_HOME/jsm-default/services/jws/htdocs 目錄;安裝 2.3.3 Service Pack。

IBM WebSphere 漏洞

1. WebSphere 3.0.2 源碼洩露

請求 /servlet/file/login.jsp 可繞過編譯直接查看源碼。
原因: 未註冊文件類型調用默認 Servlet(file)。
修補: 官方補丁

2. 大小寫擴展名源碼洩露

同 Tomcat,Windows 下 .JSP 會以文本輸出。
修補: 官方補丁

BEA WebLogic 默認 Servlet 風險

所有 5.1.x、4.5.x、4.0.x、3.1.8 版本受影響。
WebLogic 註冊 weblogic.httpd.defaultServlet=file,導致 URL 加前綴 /file/ 即可查看任意文件源碼(如 /file/login.jsp)。

利用方式:

  1. 強制 SSIServlet:/*.shtml/login.jsp
  2. 強制 FileServlet:/ConsoleHelp/login.jsp

解決方案:

  1. 將默認 Servlet 註冊為隨機名稱(如 12foo34)增加猜測難度。
  2. 使用通配符註冊靜態資源:weblogic.httpd.register.*.html=weblogic.servlet.FileServlet,並對 *.gif *.jpg 等重複操作。
    參考:官方鎖定指南

總結與防護建議

  • 訂閱 Bugtraq、廠商郵件列表,及時獲取漏洞預警。
  • 部署前移除所有範例、文檔、演示程式。
  • 配置默認錯誤頁面,禁止詳細異常堆疊輸出給客戶端。
  • 定期升級伺服器版本與補丁。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved