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
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 需映射為空格字符。
請求不存在的 JSP(如 /anything.jsp)會在 404 錯誤中暴露完整物理路徑:/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp
修復: 升級新版本。
Tomcat 對 .jsp 大小寫敏感,Windows 下請求 index.JSP 會以文本形式輸出源碼(Unix 則報 404)。
防護: 在 web.xml 中註冊所有大小寫組合(*.jsp、*.JSP、*.JsP...)映射到 JSP Servlet。
URL 雙斜槓 //WEB-INF/ 可列出該目錄所有文件。
修補程式: jr233p_ASB00_28_29
利用 SSIFilter Servlet 遍歷目錄:/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../test.jsp/servlet/ssifilter/../../../../../../../winnt/repair/sam
請求 /servlet/jsp/../../path/to/temp.txt 可將任意文件作為 JSP 編譯執行。
同樣需安裝 jr233p_ASB00_28_29 補丁。
刪除 JRUN_HOME/servlets 下所有 .java/.class 及 JRUN_HOME/jsm-default/services/jws/htdocs 目錄;安裝 2.3.3 Service Pack。
請求 /servlet/file/login.jsp 可繞過編譯直接查看源碼。
原因: 未註冊文件類型調用默認 Servlet(file)。
修補: 官方補丁
同 Tomcat,Windows 下 .JSP 會以文本輸出。
修補: 官方補丁
所有 5.1.x、4.5.x、4.0.x、3.1.8 版本受影響。
WebLogic 註冊 weblogic.httpd.defaultServlet=file,導致 URL 加前綴 /file/ 即可查看任意文件源碼(如 /file/login.jsp)。
利用方式:
/*.shtml/login.jsp/ConsoleHelp/login.jsp解決方案:
12foo34)增加猜測難度。weblogic.httpd.register.*.html=weblogic.servlet.FileServlet,並對 *.gif *.jpg 等重複操作。