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/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
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"/>更改使用者名稱和密碼(需強壯)。