1. 程式人生 > >web安全/滲透測試--43--web伺服器控制檯地址洩漏

web安全/滲透測試--43--web伺服器控制檯地址洩漏

1、漏洞名稱:

Web容器控制檯地址洩漏、中介軟體控制檯地址洩漏、web伺服器控制檯地址洩漏

2、漏洞描述:

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

3、檢測條件:

已知Web網站具有中介軟體控制檯頁面。

4、檢測方法

常見的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/consolehttps://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

5、修復方案

預設的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檔案的前增加以下內容,其中藍色部分為需要根據實際情況配置的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"/>更改使用者名稱和密碼(需強壯)。