綜述:服務器漏洞是安全問題的起源,黑客對網站的攻擊也大多是從查找對方的漏洞開始的。所以只有了解自身的漏洞,網站管理人員才能采取相應的對策,阻止外來的攻擊。下面介紹一下一些服務器(包括Web服務器和JavaScript/" target="_blank">JSP服務器)的常見漏洞。
成功的利用該漏洞將導致泄露指定的JavaScript/" target="_blank">JSP文件的源代碼,例如:使用下面的任意一個URL請求將輸出指定的JavaScript/" target="_blank">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 軟件環境下開發的一個支持 JavaScript/" target="_blank">JSP 1.1 和 Servlets 2.2 的軟件。它存在一個安全問題當發送一個不存在的 jsp 請求時會暴露網站上網頁的全路徑。 舉例: http://narco.guerrilla.sucks.co:8080/anything.jsp 結果顯示: Error: 404 Location: /anything.jsp JavaScript/" target="_blank">JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found 解決方案:升級到新版本 Tomcat 暴露JavaScript/" target="_blank">JSP文件內容 Java Server Pages (JavaScript/" target="_blank">JSP)類型的文件是以'.jsp'擴展名在Tomcat 上注冊,Tomcat 是文件名大小寫敏感的,'.jsp'和'.JavaScript/" target="_blank">JSP'是不同類型的文件擴展名。如果提交有'.JavaScript/" target="_blank">JSP'的鏈接給Tomcat,而Tomcat找不到'.JavaScript/" target="_blank">JSP'就會以默認的'.text'文件類型來響應請求。因為在NT系統中大小寫文件名是非敏感的,所以被請求的文件會以文本的形式送出。 如果在UNIX服務器上會出現"file not found"的錯誤信息。 如何在windows下對Tomcat實施代碼保護 Tomcat的一些版本有泄露源代碼的漏洞,如果在瀏覽器中調用JavaScript/" target="_blank">JSP頁面時將該文件的后綴改成大寫,這個JavaScript/" target="_blank">JSP文件的源代碼將完全輸出到瀏覽器中(也許瀏覽器窗口中什么都沒有,這時你只需查看HTML源文件就可以發現)。如此一來,網站的源代碼是不是都會暴露在互聯網上那? 不用擔心,解決方法很簡單,把各種后綴的組合全部寫到Tomcat_Home\conf \web.xml里就可以了,這樣Tomcat會將不同后綴名的JavaScript/" target="_blank">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 解決方案:下載并安裝補丁:
[page_break] Allaire JRUN 2.3 查看任意文件漏洞 Allaire 的 JRUN 服務器 2.3上存在多重顯示代碼漏洞。該漏洞允許攻擊者在 WEB 服務器上查看根目錄下的任意文件的源代碼。 JRun 2.3 使用 Java Servlets 解析各種各樣類型的頁面(例如:HTML, JavaScript/" target="_blank">JSP等等)。基于rules.properties 和 servlets.properties 的文件設置,可能利用URL前綴"/servlet/"調用任何servlet。 它可能使用 Jrun 的 SSIFilter servlet 在目標系統上檢索任意的文件。下列 2 個例子顯示出能被用來檢索任意的文件的 URLs :
注意:假設JRun在主機" jrun "上運行,端口8000。 受影響的系統:Allaire JRun 2.3.x 解決方案:下載并安裝補丁:
Allaire JRUN 2.3遠程執行任意命令漏洞 Allaire 的 JRUN 服務器 2.3上存在一個安全漏洞,允許遠程用戶把在 WEB 服務器上的任意文件作為JavaScript/" target="_blank">JSP代碼編譯/執行。 如果URL請求的目標文件使用了前綴"/servlet/",則JavaScript/" target="_blank">JSP解釋執行功能被激活。這時在用戶請求的目標文件路徑中使用"../",就有可能訪問到 WEB 服務器上根目錄以外的文件。在目標主機上利用該漏洞請求用戶輸入產生的一個文件,將嚴重威脅到目標主機系統的安全。 例如: http://jrun:8000/servlet/com.livesoftware.jrun.plugins.jsp.JavaScript/" target="_blank">JSP/../../path/to /temp.txt http://jrun:8000/servlet/jsp/../../path/to/temp.txt 受影響的系統:Allaire JRun 2.3.x 解決方案:下載并安裝補丁:
JRun 2.3.x 范例文件暴露站點安全信息 JRun 2.3.x 在 JRUN_HOME/servlets 目錄下有一些 servlet 范例文件,這個目錄是 JRun 2.3.x 用于加載和執行 servlets 文件。所有擴展名為 ".Java" 或 "class" 的文件必須被刪除,這是因為這些文件會暴露站點的安全信息。例如: http://www.xxx.xxx/servlet/SessionServlet 會暴露當前服務器保持的HTTP連接信息。JRUN_HOME/jsm-default/services/jws/htdocs 目錄下的內容也應被刪除掉。這個目錄保存有演示服務器功能的 '.jsp' 文件,其中一些文件牽涉到訪問服務器文件系統和暴露服務器設置的問題。例如對文件 "viewsource.jsp" 的路徑檢查是默認關閉的,它可被用于訪問服務器文件系統。 解決方案: 1)安裝 2.3.3 service pack 2)從服務器上刪除所有的說明文檔、演示編碼、范例和教材,包括安裝 JRun 2.3.x 時存放于 JRUN_HOME/servlets 目錄和JRUN_HOME/jsm-default/services/jws/htdocs 目錄里的文檔。 相關站點:http://www.allaire.com/ IBM WebSphere Application Server有哪些漏洞? 1、IBM WebSphere Application Server 3.0.2 存在暴露源代碼漏洞 IBM WebSphere Application Server 允許攻擊者查看 Web server 根目錄以上的所有文件。IBM WebSphere 使用 Java Servlets 處理多種頁面類型的分析(如 HTML, JavaScript/" target="_blank">JSP, JHTML, 等等)。In addition 不同的 servlets 對不同的頁面進行處理,如果一個請求的文件是未進行注冊管理的,WebSphere 會使用一個默認的 servlet 作調用。如果文件路徑以"/servlet/file/"作開頭這個默認的 servlet 會被調用這個請求的文件會未被分析或編譯就顯示出來。 受影響系統:IBM WebSphere 3.0.2 的所有版本 舉例: 如果一個請求文件的 URL 為 "login.jsp":: http://site.running.websphere/login.jsp那么訪問 http://site.running.websphere/servlet/file/login.jsp將看到這個文件的源代碼。 解決方案:下載并安裝補丁 http://www-4.ibm.com/software/webservers/appserv/efix.html 相關站點:http://www-4.ibm.com/software/webservers/appserv/ IBM WebSphere Application Server 暴露JavaScript/" target="_blank">JSP文件內容 Java Server Pages (JavaScript/" target="_blank">JSP)類型的文件是以'.jsp'擴展名在WebSphere Application Serve 上注冊,WebSphere 是文件名大小寫敏感的,'.jsp'和'.JavaScript/" target="_blank">JSP'是不同類型的文件擴展名。如果提交有'.JavaScript/" target="_blank">JSP'的鏈接給WebSphere,而WebSphere找不到'.JavaScript/" target="_blank">JSP'就會以默認的'.text'文件類型來響應請求。因為在NT系統中大小寫文件名是非敏感的,所以被請求的文件會以文本的形式送出。 如果在UNIX服務器上會出現"file not found"的錯誤信息。 解決方案:點擊此處下載補丁 相關站點:http://www-4.ibm.com/software/webservers/appserv/efix.html BEA WebLogic有哪些暴露源代碼漏洞? 受影響版本: 所有系統上的
這個漏洞使攻擊者能讀取 Web 目錄下所有文件的源代碼。 WebLogic 依賴四個主要 Java Servlets to 服務不同類型的文件。這些 servlets 是: 1)FileServlet - for 簡單 HTML 頁面 2)SSIServlet - for Server Side Includes 頁面 3)PageCompileServlet - for JHTML 頁面 4)JavaScript/" target="_blank">JSPServlet - for Java Server 頁面 看著weblogic.properties 文件, 這兒是各個 servlets 的注冊值: 1)weblogic.httpd.register.file=weblogic.servlet.FileServlet 2)weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet 3)weblogic.httpd.register.*.jhtml=weblogic.servlet.jhtmlc.PageCompileServlet 4)weblogic.httpd.register.*.jsp=weblogic.servlet.JavaScript/" target="_blank">JSPServlet 更多的 weblogic.properties 文件, 如果一個請求文件是沒有注冊管理的,那么就會調用一個默認的 servlet 。以下是展示默認的 servlet 是如何注冊的。
因此如果 URL 中的文件路徑開頭為 "/file/" , 將會引致 WebLogic 調用默認的 servlet, 那將會使網頁未加分析和編譯而直接顯示。 論證: 只要在想看的文件原來的 URL 路徑之前加入 "/file/" 就會讓文件未經分析和編譯,直接暴露源代碼。如:http://site.running.weblogic/login.jsp ,那么只要訪問 http://site.running.weblogic/file/login.jsp 就會在 WEB 瀏覽器里看到文件的內容。 以下是使用方法: 1. 通過強制使用 SSIServlet 查看未分析的頁面 : 服務器站點通過 WebLogic 中的 SSIServlet 處理頁面,它在weblogic.properties 文件中注冊以下信息:weblogic.httpd.register.*.shtml= weblogic.servlet.ServerSideIncludeServlet 通過 URL 使用 SSIServlet 自動處理通配符 (*) 。因此 如果文件路徑開頭為 /*.shtml/,將強制文件由 SSIServlet 處理。如果使用其它文件類型如 .jsp 和 .jhtml, 就能查看未分析的 jsp 和 jhtml 代碼。舉例:http://www.xxx.com/*.shtml/login.jsp 2. 通過強制使用 FileServlet 查看未分析的頁面 : WebLogic 使用 FileServlet 配置 ConsoleHelp servlet ,在weblogic.properties 文件的以下內容可得知:
因此如果文件路徑以 /ConsoleHelp/ 開頭將導致 WebLogic 使用 FileServlet,使未分析或編譯的文件作頁面顯示出來,舉例:http://www.xxx.com/ConsoleHelp/login.jsp 解決方案: 不要使用示例中的設置方法設置 FileServlet 。這可能會讓你的 JavaScript/" target="_blank">JSP/JHTML 文件的源代碼暴露出來。請查看在線文檔: http://www.weblogic.com/docs51/admindocs/http.html#file 示例的 registrations 如下: weblogic.httpd.register.file=weblogic.servlet.FileServlet weblogic.httpd.initArgs.file=defaultFilename=index.html weblogic.httpd.defaultServlet=file 有兩種方法可以避免這個問題: (1)注冊那些文件 servlet 使用隨機用戶名,加大猜測難度。例如使用象這樣注冊文件 servlet 為 12foo34: weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet weblogic.httpd.initArgs.12foo34=defaultFilename=index.html weblogic.httpd.defaultServlet=12foo34 (2)注冊文件 servlet 使用 wild cards 聲明你將使用所有這些文件擴展名作服務。舉例注冊文件 servlet 為 .html 文件服務: weblogic.httpd.register.*.html=weblogic.servlet.FileServlet weblogic.httpd.initArgs.*.html=defaultFilename=index.html weblogic.httpd.defaultServlet=*.html 使用上面的方法重復加入以下類型的文件 *.gif, *.jpg, *.pdf, *.txt, etc. 注意:這些信息是備有證明在 BEA WebLogic Server and Express 說明檔的:http://www.weblogic.com/docs51/admindocs/lockdown.html 另:請留意新版本并升級吧。 |
溫馨提示:喜歡本站的話,請收藏一下本站!