1. 程式人生 > >WAR文件信息泄露及利用

WAR文件信息泄露及利用

war信息泄露

1.1WAR文件信息泄露及利用

1.1.1war簡介

WAR文件常見於Java應用中,WAR文件和JAR文件的文件格式是一樣的,並且都是使用jar命令來創建,但就其應用來說,WAR文件和JAR文件是有根本區別的。JAR文件的目的是把類和相關的資源封裝到壓縮的歸檔文件中,而對於WAR文件來說,一個WAR文件代表了一個Web應用程序,它可以包含 Servlet、HTML頁面、Java類、圖像文件,以及組成Web應用程序的其他資源,而不僅僅是類的歸檔文件。

如果一個Web應用程序的目錄和文件非常多,那麽將這個Web應用程序部署到另一臺機器上,全部復制過去,在復制過程中如果出現意外,非常麻煩!設計者想到了一個方法即將Web應用程序打包成Web 歸檔(WAR)文件,這個過程和把Java類文件打包成JAR文件的過程類似。利用WAR文件,可以把Servlet類文件和相關的資源集中在一起進行發布。在這個過程中,Web應用程序就不是按照目錄層次結構來進行部署了,而是把WAR文件作為部署單元來使用。一個WAR文件就是一個Web應用程序,建立WAR文件,就是把整個Web應用程序(不包括Web應用程序層次結構的根目錄)壓縮起來,指定一個.war擴展名。一般是在在產品發布階段使用WAR文件,在這個階段基本不會對程序進行修改。

1.1.2生成War文件

1.JDK環境

制作war包的環境安裝Java SE Development Kit(JDK)1.4以上版本,目前版本為8.0.1440.1,下載地址http://sw.bos.baidu.com/sw-search-sp/software/0e4489b4c514e/jdk-10_windows-x64_bin_10.0.0.0.exe。在有些Java開發工具中會默認安裝JDK。Java Runtime Environment是運行環境,即允許java應用程序必須安裝。默認安裝路徑在C:\Program Files (x86)\Java\jdk1.8.0_144\bin,安裝完畢後在“計算機”-“計算機屬性”-“高級”-“環境變量”中設置添加path值“C:\Program Files (x86)\Java\jdk1.8.0_144\bin”,即在原有的值後面增加一個“;”然後將java所在路徑值增加在後面即可。“java –version”命令可以查看java版本信息。

2.生成jar文件

(1)生成jar文件

切換到j2sdk的bin目錄,找到jar命令

在linux上,jar命令位於:/usr/java/j2sdk1.4.2/bin

在win上,jar命令位於:C:\Program Files (x86)\Java\jdk1.8.0_144\bin

執行jar -cvf 將要生成的包名“.war”要壓縮的目錄名,例如,要壓縮C:/index目錄下的子目錄和jsp文件,則先切換到jar文件所在的路徑,鍵入如下命令:

cd C:/index

jar -cvf index.war *

即可在當前目錄下得到index.war,隨後可以把index.war上傳到服務器

(2) 將兩個類文件歸檔到一個名為 classes.jar 的檔案中:

jar cvf classes.jar Foo.class Bar.class

(3) 使用現有的清單文件 'mymanifest' 並將 foo/ 目錄中的所有文件歸檔到 'classes.jar' 中: jar cvfm classes.jar mymanifest -C foo/ .

3. 使用eclpise導出war,在eclpise中可以選中一個項目,然後選擇“Export”, 選中“Web”下面的“WAR file”,點擊“Nex”通過“Browse”選擇保存路徑,點擊“Finish”完成即可。

4.查看war文件

jar -tf index.war

1.1.3設置及部署war文件

1.部署war

在TOMCAT中部署war,其部署步驟如下:

(1)將war文件拷貝到tomcat目錄/webapps/ 下。

(2)將必要的jar文件拷貝到tomcat目錄/lib/ 下。

2.設置server.xml配置文件

(1)修改tomcat目錄/conf/下的server.xml。

<!-- Tomcat Manager Context -->

<Context path="/manager" docBase="manager" debug="0"privileged="true"/>

將這段代碼中的

<Context path="/manager" docBase="manager" debug="0" privileged="true"/>

拷貝一下並修改:path="" 為war路徑,docBase=""為你的war的文件名,默認為管理地址。

(3)完畢,啟動tomcat

3.自動解壓設置

在tomcat安裝目錄下的conf目錄下有個server.xml,搜索“unpackWARs”關鍵字,在<Host>標簽中會有對其的設置,如果設置成true,那麽tomcat在啟動的時候,會在webapps目錄下自動解壓你那個war文件;如果設置成false,則tomcat直接訪問war文件。

1.1.4WAR文件信息泄露及利用思路

1.war文件信息泄露

WAR文件信息泄露是指部署的war文件由於配置不當,導致其整個包文件以及其它重要配置文件信息泄露,例如可以直接瀏覽目錄,獲取其下面的數據庫配置文件:WEB-INF/jdbc.properties,jdbc.properties為數據庫連接配置文件,其中包含數據庫連接的賬號和密碼等重要信息,在有些java應用中可能配置有郵箱賬號和密碼等敏感信息,筆者曾經在某大型網絡中還見過將windows操作系統賬號和密碼寫進配置文件,一旦這些文件信息泄露,將導致嚴重的安全隱患。如圖1所示,在該配置文件中包含了郵箱帳號和密碼等信息。

技術分享圖片

圖1泄漏郵箱帳號和密碼

2.重要的配置文件

java一般其重要配置文件位於其對應WEB-INF目錄下,常見的重要配置文件有:

config/config.properties

configure/configure.properties

applicationContext.xml

sysconfig.properties

web.xml

config.xml

jdbc.properties

3.利用思路

(1)通過配置文件尋找真實路徑信息。

(2)通過配置文件獲取郵箱帳號和密碼信息,包含郵箱帳號和密碼的配置文件,其郵箱帳號99%都可以登錄成功。登錄郵件後可以對其郵箱信件內容進行查看,可以進行apt攻擊等。

(3)獲取配置文件中的數據庫連接信息,如果外網或者內網能夠訪問數據庫端口,則可以直接連接數據庫,操作和管理數據庫,甚至進行服務器提權。

(4)其它重要信息。獲取一些有助於進一步滲透到url等配置信息。

4.war信息泄露獲取方法

(1)目錄信息泄露,直接訪問其相應的目錄可以獲取

(2)掃描軟件掃描獲取。通過一些漏洞掃描工具,通過掃描即可獲取。

(3)通過shadon、zoomeye、fofa漏洞搜索引擎對關鍵字進行搜索

1.1.5尋找war信息泄露實戰

1.使用fosa搜索jdbc.properties

打開https://fofa.so,在其搜索框中輸入"jdbc.properties"進行搜索,如圖1所示可以獲取20多個信息泄露記錄。

技術分享圖片

圖2利用關鍵字搜索配置文件

2.對其泄漏的記錄進行查看

對其中的記錄進行逐個查看,如圖3所示,可以看到該泄漏的文件存在目錄泄漏漏洞,通過訪問站點直接可以獲取其配置文件的信息。如圖4所示,其jdbc.properties配置文件中配置了SQL Server的sa賬號和密碼:

jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbcUser=sa

jdbcPassword=cx******5

jdbcUrl=jdbc\:sqlserver\://120.****.***\:1433;DatabaseName=test2

技術分享圖片

圖3目錄信息泄露敏感文件

技術分享圖片

圖4泄漏數據庫配置文件

3.通過sqltools對該主機的數據庫進行連接

如圖5所示,通過sqltools對上面獲取的密碼和數據庫進行連接,成功連接後,可以執行命令,數據庫配置的權限為system,直接獲取服務器權限。

技術分享圖片

圖5鏈接數據庫

4.直接添加用戶並獲取服務器密碼

通過net user hack hacker /add net localgroup administrators hack /add類似命令添加用戶,直接遠程登錄服務器,通過wce等工具獲取服務器密碼,如圖6所示。

技術分享圖片

圖6登錄並獲取服務器管理密碼

1.1.6信息泄露掃描工具

開源信息泄露掃描工具:https://github.com/lijiejie/BBScan,對於信息泄露,可以通過BBScan等工具進行掃描。

1.1.7war信息泄露安全防範

1.在站點正式上線後,對站點進行利用wvs等工具進行漏洞掃描

2.對敏感文件進行訪問,在根目錄禁止打包文件,刪除無關文件。


WAR文件信息泄露及利用