淺談“Web服務器控制檯地址泄漏”

一:漏洞名稱:

Web容器控制檯地址泄漏、中間件控制檯地址泄漏、web服務器控制檯地址泄漏

描述:

Web 控制檯是一種基於 Web 的用戶界面, 其常常被用於網站後臺或者web容器控制檯中,其不僅僅侷限於容器或者網站管理後臺,還包括一些數據庫默認地址等。在web安全中,網站系統在泄漏其web容器(中間件)或者數據庫的控制檯後,存在增加被入侵的風險。常見的web控制檯包括以下多種:tomcat、aria2、weblogic、websphere、oracle、jboss、等。這些web的容器控制檯常見訪問形式:http://hostname:port/load/,例如:http://x.x.x.x:8080/manage/。

檢測條件:

已知Web網站具有中間件控制檯頁面。

檢測方法:

常見的web控制檯檢測方法:整體思路爲首先需識別網站容器的指紋,判斷其所採用的中間件,然後去掃描其所開放的端口,根據開放端口信息和常見固定的路徑,去判斷其控制檯地址。以下列舉常見集中的檢測方法:

  1. Apache+tomcat:tomcat常見的web控制檯地址爲:http://x.x.x.x/manager/html或者添加端口:http://x.x.x.x:8080/manager/html,從TOMCAT5(開始默認/admin後臺不存在,tomcat5之前的控制檯爲/admin。
  2. Weblogic控制檯:http://[weblogic所在機器IP]:[weblogic端口]/console若沒有指定端口,且安裝在本機上則爲:(weblogic默認端口爲7001)http://localhost:7001/console。
  3. Websphere控制檯:websphere的控制檯常見有兩種,一種是基於http,另一種是基於https的,分別爲如下:http://localhost:9060/ibm/console和https://localhost:9043/ibm/console/logon.jsp。
  4. Oracle web控制檯:一般默認的是http://localhost:5500/em,一般存放於Oracle安裝文件夾下的install文件夾下中文本文件,上面有web控制檯的地址。
  5. Mongodb web控制檯:自帶了Web控制檯:默認和數據服務一同開啓。他的端口在Mongodb數據庫服務器端口的基礎上加1000,如果是默認的Mongodb數據服務端口(Which is 27017),則相應的Web端口爲28017,這個頁面可以看到當前Mongodb的所有連接、各個數據庫和Collection的訪問統計,包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes、寫鎖的狀態、以及日誌文件的最後幾百行(CentOS+10gen yum 安裝的mongodb默認的日誌文件位於/var/log/mongo/mongod.log)。
  6. HP system managent控制檯:該控制檯一般默認的端口爲2381,可在其後添加路徑/cpqlogin.php?errno=100&severity=4,即可訪問.https://localhost:2381/cpqlogin.php?errno=100&severity=4
  7. Service Registry 3控制檯:在 Web 瀏覽器中鍵入以下 URL:http://hostname:port/soar/例如:http://localhost:6060/soar/如果系統中安裝了 Registry,則 hostname 爲 localhost。如果系統中尚未安裝 Registry,請使用安裝了 Registry 的系統的名稱。port 的值通常爲 6060,除非發生端口衝突。
  • Tomcat控制檯URL:http://www.exmaple.com/manager/html
  • Tomcat控制檯默認帳號admin,默認密碼admin或空
  • Jboss控制檯URL:http://www.exmaple.com/jmx-console/
  • Jboss控制檯URL:http://www.exmaple.com/web-console/
  • Jboss控制檯默認無須登陸,或者admin/admin
  • WebSphere控制檯URL:http://www.exmaple.com/ibm/console/logon.jsp
  • WebSphere默認帳號admin,默認密碼admin
  • Apache控制檯URL:http://www.exmaple.com/server-status
  • Axis2控制檯URL:http://www.exmaple.com/axis2-admin/
  • Axis2控制檯默認口令帳戶:admin/axis2
  • iSAP控制檯URL:http://www.exmaple.com/admin/login.jsp
  • iSAP控制檯默認的帳號和密碼:admin/admin
  • “普元”管理控制檯URL:http://www.exmaple.com/eosmgr/
  • “普元”管理控制檯默認的帳號和密碼:sysadmin/000000

 

 

風險等級:

【高危】:可訪問默認中間件控制檯,且能過成功獲取 shell。

【中危】:可訪問默認中間件控制檯,併成功登錄,但無法獲取 shell。

【低危】:可訪問默認中間件控制檯,但無法登錄且無法執行危險操作。

漏洞修復:

默認的web容器控制檯泄漏於網絡中,常常可被利用,進行對web系統的攻擊,一旦進入這些控制檯後,可對網站進行任意的部署,中斷服務等危險行爲,建議從以下幾點出發,修復有關控制檯地址泄漏的問題:

1、 對於必須暴露於公網或者其他網絡中的控制檯地址,則爲其地址做訪問白名單措施,即只允許白名單以內的用戶IP地址可以訪問到該控制檯,通過過濾器(filter)實現:

     ①創建客戶端IP過濾器ClientIpFilter

package com.huawei.filters;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
public class ClientIpFilter implements Filter
{
    protected FilterConfig filterConfig;
    private String whiteIPlist[] = null;
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
        throws IOException, ServletException
    {
        String clientIP = req.getRemoteAddr();        
        if(IsIPinWhitelist(clientIP))
		{
		 	//驗證成功,繼續處理
			//System.out.println(clientIP+"調用Web Service,IP鑑權通過");
			chain.doFilter(req,res);		
		}		
		else
		{
			//驗證不成功,禁止用戶調用該服務。
			System.out.println(clientIP+"調用Web Service,IP鑑權不通過");
		 	//throw new ServletException(clientIP + "無權限訪問Web Service!");
		}
    }    
	private boolean IsIPinWhitelist(String remoteIPAddress)
	{
		for(int i = 0; i < this.whiteIPlist.length; i++)
        {
			String strIP = this.whiteIPlist[i];
			if(strIP.equals(remoteIPAddress))
			{
				return true;
			}
        }		
		return false;
	}
	public void setFilterConfig(FilterConfig filterConfig)
    {
        this.filterConfig = filterConfig;
    }
    public void destroy()
    {
        filterConfig = null;
    }
    public void init(FilterConfig config)
        throws ServletException
    {
        this.filterConfig = config;
        String IPs = config.getInitParameter("IPList");
        this.whiteIPlist = IPs.split(",");
    }
}

     ② 在web.xml中部署過濾器ClientIpFilter

在對應的web.xml文件的</web-app>前增加以下內容,其中藍色部分爲需要根據實際情況配置的
IP地址白名單(也就是允許訪問相應Web模塊的客戶端IP地址列表),IP地址間通過逗號隔開,
不允許有空格;其中紅色部分爲需要根據實際情況配置的Web目錄。參考代碼:
<filter>
	   <filter-name>ClientIpFilter</filter-name>
	   <filter-class>com.huawei.filters.ClientIpFilter</filter-class>
		 <init-param>
		   <param-name>IPList</param-name>
		   <param-value>192.168.1.11,192.168.2.22,10.70.107.119</param-value>
		 </init-param>
	</filter>
	<filter-mapping>
	   <filter-name>ClientIpFilter</filter-name>
	   <url-pattern>/WebService/*</url-pattern>
	</filter-mapping>

 

2、 修改控制檯默認的用戶名和名嗎,併爲其控制檯設置強壯的口令措施,防止可被惡意或簡單猜解得到用戶名和密碼。

3、 修改web容器控制檯的默認端口,默認路徑,避免可被直接利用,訪問得到地址

4.例如:tomcat的修復方式:禁止別人訪問tomcat主頁,環境:tomcat 6.0 ;步驟1:在server.xml中 <Host name="localhost" appBase="webapps"修改改webapps爲xxxxxx(自己設置的路徑);步驟2:在tomcat-users.xml中 :<user name="admin" password="xxxx" roles="admin,manager" /> 更改用戶名和密碼(需強壯)。


其他補充:

CVE 全稱“Common Vulnerabilities&Exposures” 公共漏洞和暴露。

CVE 爲廣泛認同的信息安全漏洞或者已經暴露出來的弱點給出一個公共的名稱,幫助用戶在各個獨立漏洞數據庫中和漏洞評估工具中共享數據。各個工具整合起來並不容易,所以就使得CVE成爲了安全信息共享的關鍵字。類似一個字典表的作用。

在一個漏洞報告中指明的一個漏洞,如果有CVE名稱,你就可以快速的在其他任何CVE兼容的數據庫中find到對應的修補信息,方便解決安全問題。

 

CVE-ID 解析:

CVE prefix + Year + Arbitrary Digits

只有當最後四位隨機的數字全部用光後,可以增加數字的位數。

所以不用糾結7169等的含義了,只是一個數字。

如果有對安全感興趣的同學,時常關注下漏洞發佈,有助於提高自身對漏洞安全的敏感性。

CVE相關鏈接:

https://cve.mitre.org/    #CVE官網  

http://cve.scap.org.cn/ #中文CVE漏洞信息庫

http://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures

什麼叫web容器以及作用?

就是一種所謂的中間件(大概理解爲容器相當於大於等於中間件,有時候說容器可以指的是中間件,但是說中間件不能理解爲容器。
你想,如果讓你憑空寫一個能通過web訪問的程序,是不是很難?
有了web容器,只要按照它的規範寫出功能邏輯(比如servlet,又比如asp)就可以了,而網絡連接容管理,會話管理等功能都由容器實現,大大簡化了開發

web容器是一種服務程序,在服務器一個端口就有一個提供相應服務的程序,而這個程序就是處理從客戶端發出的請求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是這樣的容器。一個服務器可以有多個容器。

Web應用程序需要部署到Web容器中才能運行,兩者都必須符合J2EE規範。Web容器主要任務是管理Web應用程序。

Servlet簡介

  Servlet是sun公司提供的一門用於開發動態web資源的技術。
  Sun公司在其API中提供了一個servlet接口,用戶若想用發一個動態web資源(即開發一個Java程序向瀏覽器輸出數據),需要完成以下2個步驟:
  1、編寫一個Java類,實現servlet接口。
  2、把開發好的Java類部署到web服務器中。
  按照一種約定俗成的稱呼習慣,通常我們也把實現了servlet接口的java程序,稱之爲Servlet

狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解爲後者。

Servlet(Server Applet)是 Java Servlet 的簡稱,是使用 Java 語言編寫的運行在服務器端的程序。具有獨立於平臺和協議的特性,主要功能在於交互式地瀏覽和生成數據,生成動態Web內容。

通常來說,Servlet 是指所有實現了 Servlet 接口的類。

Servlet 主要用於處理客戶端傳來的 HTTP 請求,並返回一個響應,它能夠處理的請求有 doGet() 和 doPost() 等。

Servlet 由 Servlet 容器提供,Servlet 容器是指提供了 Servlet 功能的服務器(如 Tomcat)。

Servlet 容器會將 Servlet 動態加載到服務器上,然後通過 HTTP 請求和 HTTP 應與客戶端進行交互。

Servlet 應用程序的體系結構如圖 1 所示。

Servlet 應用程序的體系結構
圖 1  Servlet 應用程序的體系結構


在圖 1 中,Servlet 的請求首先會被 HTTP 服務器(如 Apache)接收,HTTP 服務器只負責靜態 HTML 頁面的解析,而 Servlet 的請求會轉交給 Servlet 容器,Servlet 容器會根據 web.xml 文件中的映射關係,調用相應的 Servlet,Servlet 再將處理的結果返回給 Servlet 容器,並通過 HTTP 服務器將響應傳輸給客戶端。

Servlet 技術具有如下特點。

1)方便

Servlet 提供了大量的實用工具例程,如處理很難完成的 HTML 表單數據、讀取和設置 HTTP 頭,以及處理 Cookie 和跟蹤會話等。

2)跨平臺

Servlet 使用 Java 類編寫,可以在不同的操作系統平臺和不同的應用服務器平臺運行。

3)靈活性和可擴展性強

採用 Servlet 開發的 Web 應用程序,由於 Java 類的繼承性及構造函數等特點,使得應用靈活,可隨意擴展。

除了上述幾點以外,Servlet 還具有功能強大、能夠在各個程序之間共享數據、安全性強等特點,此處不再詳細說明,讀者簡單瞭解即可。

中間件:(https://www.php.cn/faq/418042.html

中間件是一類連接軟件組件和應用的計算機軟件,它包括一組服務。以便於運行在一臺或多臺機器上的多個軟件通過網絡進行交互。該技術所提供的互操作性,推動了一致分佈式體系架構的演進,該架構通常用於支持並簡化那些複雜的分佈式應用程序,它包括web服務器、事務監控器和消息隊列軟件。

 

中間件(middleware)是基礎軟件的一大類,屬於可複用軟件的範疇。顧名思義,中間件處於操作系統軟件與用戶的應用軟件的中間。

中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是爲處於自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成複雜的應用軟件。在衆多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟件或服務程序,分佈式應用軟件藉助這種軟件在不同的技術之間共享資源,中間件位於客戶機服務器的操作系統之上,管理計算資源和網絡通信。

IDC對中間件的定義表明,中間件是一類軟件,而非一種軟件;中間件不僅僅實現互連,還要實現應用之間的互操作;中間件是基於分佈式處理的軟件,最突出的特點是其網絡通信功能。

中間件是位於平臺(硬件和操作系統)和應用之間的通用服務,如圖1所示,這些服務具有標準的程序接口和協議。針對不同的操作系統和硬件平臺,它們可以有符合接口和協議規範的多種實現。

 

 

也許很難給中間件一個嚴格的定義,但中間件應具有如下一些特點:

①滿足大量應用的需要;

②運行於多種硬件和OS平臺;

③支持分佈計算,提供跨網絡、硬件和OS平臺的透明性的應用或服務的交互;

④支持標準的協議;

⑤支持標準的接口。

由於標準接口對於可移植性、標準協議對於互操作性的重要性,中間件已成爲許多標準化工作的主要部分。對於應用軟件開發,中間件遠比操作系統和網絡服務更爲重要,中間件提供的程序接口定義了一個相對穩定的高層應用環境,不管底層的計算機硬件和系統軟件怎樣更新換代,只要將中間件升級更新,並保持中間件對外的接口定義不變,應用軟件就幾乎不需任何修改,從而保護了企業在應用軟件開發和維護中的重大投資。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章