<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/604

            java應用服務器


            Java應用服務器主要為應用程序提供運行環境,為組件提供服務。Java 的應用服務器很多,從功能上分為兩類:JSP 服務器和 Java EE 服務器。

            常見的Server概述

            常見的Java服務器:Tomcat、Weblogic、JBoss、GlassFish、Jetty、Resin、IBM Websphere、Bejy Tiger、Geronimo、Jonas、Jrun、Orion、TongWeb、BES Application Server、ColdFusion、Apusic Application Server、Sun Application Server 、Oracle9i/AS、Sun Java System Application Server。

            Myeclipse比較方便的配置各式各樣的Server,一般只要簡單的選擇下Server的目錄就行了。 ? enter image description here

            部署完成后啟動進入各個Server的后臺:

            enter image description here ?

            構建WebShell war文件

            1、打開Myeclipse新建Web項目
            2、把jsp放到WebRoot目錄下
            3、導出項目為war文件
            

            enter image description here ?

            Tomcat


            Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

            Tomcat版本

            Tomcat主流版本:5-6-7,最新版Tomcat8剛發布不久。Tomcat5較之6-7在文件結構上有細微的差異,6-7-8沒有大的差異。最新版的Tomcat8主要新增了:Servlet 3.1, JSP 2.3, EL 3.0 and Web Socket 1.0支持。

            版本詳情說明:http://tomcat.apache.org/whichversion.html

            結構目錄:

            Tomcat5:

            Bin、common、conf、LICENSE、logs、NOTICE、RELEASE-NOTES、RUNNING.txt、Server、shared、Temp、webapps、work
            

            Tomcat6-8:

            Bin、conf、lib、LICENSE、logs、NOTICE、RELEASE-NOTES、RUNNING.txt、temp、webapps、work
            

            關注conf和webapps目錄即可。conf目錄與非常重要的tomcat配置文件比如登錄帳號所在的tomcat-users.xml;域名綁定目錄、端口、數據源(部分情況)、SSL所在的server.xml;數據源配置所在的context.xml文件,以及容器初始化調用的web.xml。

            源碼下載:

            Tomcat6:http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_18/

            Tomcat7:http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk/

            Tomcat默認配置

            1、tomcat-users.xml

            Tomcat5默認配置了兩個角色:tomcat、role1。其中帳號為both、tomcat、role1的默認密碼都是tomcat。不過都不具備直接部署應用的權限,默認需要有manager權限才能夠直接部署war包,Tomcat5默認需要安裝Administration Web Application。Tomcat6默認沒有配置任何用戶以及角色,沒辦法用默認帳號登錄。

            配置詳解:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Introduction

            2、context.xml

            Tomcat的上下文,一般情況下如果用Tomcat的自身的數據源多在這里配置。找到數據源即可用對應的帳號密碼去連接數據庫。

            <Context>
                <WatchedResource>WEB-INF/web.xml</WatchedResource>
                <Resource name="jdbc/u3" auth="Container" type="javax.sql.DataSource"
                          maxActive="100" maxIdle="30" maxWait="10000"
                          username="xxxxx" password="xxxx" driverClassName="com.mysql.jdbc.Driver"
                          url="jdbc:mysql://192.168.0.xxx:3306/xxx?autoReconnect=true"/>
            </Context>
            

            3、server.xml

            Server這個配置文件價值非常高,通常的訪問端口、域名綁定和數據源可以在這里找到,如果想知道找到域名對應的目錄可以讀取這個配置文件。如果有用Https,其配置也在這里面能夠找到。

            4、web.xml

            web.xml之前講MVC的時候有提到過,項目初始化的時候會去調用這個配置文件這個文件一般很少有人動但是不要忽略其重要性,修改web.xml可以做某些YD+BT的事情。

            Tomcat獲取WebShell

            Tomcat后臺部署war獲取WebShell

            登錄tomcat后臺:http://xxx.com/manager/html,一般用WAR file to deploy就行了,Deploy directory or WAR file located on server這種很少用。

            1>Deploy directory or WAR file located on server

            Web應用的URL入口、XML配置文件對應路徑、WAR文件或者該Web應用相對于/webapps目錄的文件路徑,然后單擊?按鈕,即可發布該Web應用,發布后在Application列表中即可看到該Web應用的信息。這種方式只能發布位于/webapps目錄下的Web應用。

            2>WAR file to deploy

            選擇需要發布的WAR文件,然后單擊Deploy,即可發布該Web應用,發布后在Application列表中即可看到該Web應用的信息。這種方式可以發布位于任意目錄下的Web應用。

            其中,第二種方式實際上是把需要發布的WAR文件自動復制到/webapps目錄下,所以上述兩種方式發布的Web應用都可以通過在瀏覽器地址欄中輸入http://localhost:8080/Web進行訪問。

            ? enter image description here

            Tips:
            當訪問xxxx.com找不到默認管理地址怎么辦?
            1:http://xxxx.com/manager/html 查看是否存在
            2:ping xxxx.com 獲取其IP地址,在訪問:http://111.111.111.111/manager/html
            3:遍歷server.xml配置讀取配置
            

            Tomcat口令爆破

            Tomcat登錄比較容易爆破,但是之前說過默認不對其做任何配置的時候爆破是無效的。

            Tomcat的認證比較弱,Base64(用戶名:密碼)編碼,請求:” /manager/html/”如果響應碼不是401(未經授權:訪問由于憑據無效被拒絕。)即登錄成功。

            conn.setRequestProperty("Authorization", "Basic " + new BASE64Encoder().encode((user + ":" + pass).getBytes()));
            

            Tomcat漏洞

            Tomcat5-6-7安全性并不完美,總是被挖出各種稀奇古怪的安全漏洞。在CVE和Tomcat官網也有相應的漏洞信息詳情。

            怎樣找到Tomcat的歷史版本:

            http://archive.apache.org/dist/tomcat/

            Tomcat歷史版本漏洞?

            Tomcat官網安全漏洞公布:

            Apache Tomcat - Apache Tomcat 5 漏洞: http://tomcat.apache.org/security-5.html

            Apache Tomcat - Apache Tomcat 6 漏洞: http://tomcat.apache.org/security-6.html

            Apache Tomcat - Apache Tomcat7 漏洞: http://tomcat.apache.org/security-7.html

            CVE 通用漏洞與披露: http://cve.scap.org.cn/cve_list.php?keyword=tomcat&action=search&p=1

            Cvedetails : http://www.cvedetails.com/product/887/Apache-Tomcat.html?vendor_id=45 http://www.cvedetails.com/vulnerability-list/vendor_id-45/product_id-887/Apache-Tomcat.html

            Sebug: http://sebug.net/appdir/Apache+Tomcat

            怎樣發現Tomcat有那些漏洞?

            1、通過默認的報錯頁面(404、500等)可以獲取到Tomcat的具體版本,對照Tomcat漏洞。

            2、利用WVS之類的掃描工具可以自動探測出對應的版本及漏洞。

            怎樣快速確定是不是Tomcat?

            請求響應為:Server:Apache-Coyote/1.1 就是tomcat了。

            Tomcat稀奇古怪的漏洞:

            Tomcat的安全問題被爆過非常多,漏洞統計圖:

            enter image description here

            有一些有意思的漏洞,比如:Insecure default password?CVE-2009-3548(影響版本: 6.0.0-6.0.20)

            The Windows installer defaults to a blank password for the administrative user. If this is not changed during the install process, then by default a user is created with the name admin, roles admin and manager and a blank password.在windows安裝版admin默認空密碼漏洞,其實是用戶安裝可能偷懶,沒有設置密碼…

            enter image description here

            這樣的問題在tar.gz和zip包里面根本就不會存在。有些漏洞看似來勢洶洶其實雞肋得不行如:Unexpected file deletion in work directory?CVE-2009-2902 都已經有deploy權限了,鬧個啥。

            Tomcat非常嚴重的漏洞(打開Tomcat security-5、6、7.html找):

            Important: Session fixation?CVE-2013-2067 (6.0.21-6.0.36) 
            Important: Denial of service?CVE-2012-3544 (6.0.0-6.0.36) 
            Important: Denial of service?CVE-2012-2733 (6.0.0-6.0.35) 
            Important: Bypass of security constraints?CVE-2012-3546 (6.0.0-6.0.35) 
            Important: Bypass of CSRF prevention filter?CVE-2012-4431 (6.0.30-6.0.35) 
            Important: Denial of service?CVE-2012-4534 (6.0.0-6.0.35) 
            Important: Information disclosure?CVE-2011-3375 (6.0.30-6.0.33) 
            Important: Authentication bypass and information disclosure?CVE-2011-3190 (6.0.0-6.0.33) (………………………………………………….) 
            Important: Directory traversal?CVE-2008-2938 (6.0.18) 
            Important: Directory traversal?CVE-2007-0450 (6.0.0-6.0.9)
            

            如果英文亞歷山大的同學,對應的漏洞信息一般都能夠在中文的sebug找到。

            Sebug:

            enter image description here

            CVE 通用漏洞與披露:

            enter image description here

            Resin


            Resin是CAUCHO公司的產品,是一個非常流行的application server,對servlet和JSP提供了良好的支持,性能也比較優良,resin自身采用JAVA語言開發。

            Resin比較有趣的是默認支持PHP! Resin默認通過Quercus?動態的去解析PHP文件請求。(Resin3也支持,詳情:http://zone.wooyun.org/content/2467

            Resin版本

            Resin主流的版本是Resin3和Resin4,在文件結構上并沒有多大的變化。Resin的速度和效率非常高,但是不知怎么Resin似乎對Quercus?更新特別多。

            4.0.x版本更新詳情:http://www.caucho.com/resin-4.0/changes/changes.xtp

            3.1.x版本更新詳情:http://www.caucho.com/resin-3.1/changes/changes.xtp

            Resin默認配置

            1、resin.conf和resin.xml

            Tomcat和Rsin的核心配置文件都在conf目錄下,Resin3.1.x 默認是resin.conf而4.0.x默認是resin.xml。resin.conf/resin.xml是Resin最主要配置文件,類似Tomcat的server.xml。

            1>數據源:

            第一節的時候有談到resin數據源就是位于這個文件,搜索database(位于server標簽內)即可定位到具體的配置信息。

            2>域名綁定

            搜索host即可定位到具體的域名配置,其中的root-directory是域名綁定的對應路徑。很容易就能夠找到域名綁定的目錄了。

            <host id="javaweb.org" root-directory=".">
                  <host-alias-regexp>^([^/]*).javaweb.org</host-alias-regexp>
                  <web-app id="/" root-directory="D:/web/xxxx/xxxx"/>
            </host>
            

            Resin默認安全策略

            1>管理后臺訪問權限

            Resin比較BT的是默認僅允許本機訪問管理后臺,這是因為在resin.conf當中默認配置禁止了外部IP請求后臺。

            <resin:set var="resin_admin_external" value="false"/>
            

            修改為true外部才能夠訪問。

            2>Resin后臺管理密碼

            Resin的管理員密碼需要手動配置,在resin.conf/resin.xml當中搜索management。即可找到不過需要注意的是Resin的密碼默認是加密的,密文是在登錄頁自行生成。比如admin加密后的密文大概會是:yCGkvrQHY7K8qtlHsgJ6zg== 看起來僅是base64編碼不過不只是admin默認的Base64編碼是:YWRtaW4= Resin,翻了半天Resin終于在文檔里面找到了:http://www.caucho.com/resin-3.1/doc/resin-security.xtp

            ?enter image description here

            雖說是MD5+Base64加密但是怎么看都有點不對,下載Resin源碼找到加密算法:

            package com.caucho.server.security.PasswordDigest
            

            enter image description here

            這加密已經沒法反解了,所以就算找到Resin的密碼配置文件應該也沒法破解登錄密碼。事實上Resin3的管理后臺并沒有其他Server(相對JBOSS和Weblogic)那么豐富。而Resin4的管理后臺看上去更加有趣。

            Resin4的加密方式和Resin3還不一樣改成了SSHA:

            admin_user : admin
            admin_password : {SSHA}XwNZqf8vxNt5BJKIGyKT6WMBGxV5OeIi
            

            詳情:http://www.caucho.com/resin-4.0/admin/security.xtp

            Resin3:

            enter image description here

            Resin4:

            enter image description here

            Resin獲取WebShell

            As of Resin 4.0.0, it is now possible to deploy web applications remotely to a shared repository that is distributed across the cluster. This feature allows you to deploy once to any triad server and have the application be updated automatically across the entire cluster. When a new dynamic server joins the cluster, the triad will populate it with these applications as well.

            Web Deploy war文件大概是從4.0.0開始支持的,不過想要在Web deploy一個應用也不是一件簡單的事情,首先得先進入后臺。然后還得以Https方式訪問。不過命令行下部署就沒那沒法麻煩。Resin3得手動配置web-app-deploy。?最簡單的但又不爽辦法就是想辦法把war文件上傳到resin-pro-3.1.13webapps目錄下,會自動部署(就算Resin已啟動也會自動部署,不影響已部署的應用)。

            Resin3部署詳情:http://www.caucho.com/resin-3.1/doc/webapp-deploy.xtp

            Resin4部署War文件詳情:http://www.caucho.com/resin-4.0/admin/deploy.xtp

            Resin4進入后臺后選擇Deploy,不過還得用SSL方式請求。Resin要走一個”非加密通道”。

            To deploy an application remotely: log into the resin-admin console on any triad server. Make sure you are connecting over SSL, as this feature is not available over a non-encrypted channel. Browse to the "webapp" tab of the resin-admin server and at the bottom of the page, enter the virtual host, URL, and local .war file specifying the web application, then press "Deploy". The application should now be deployed on the server. In a few moments, all the servers in the cluster will have the webapp.

            ?enter image description here

            Resin4敢不敢再沒節操點?默認HTTPS是沒有開的。需要手動去打開:

            conf
            

            esin.properties


            # https : 8443
            

            默認8443端口是關閉的,取消這一行的注釋才能夠使用HTTPS方式訪問后臺才能夠Web Deploy war。

            enter image description here

            部署成功訪問: http://localhost:8080/GetShell/Customize.jsp 即可獲取WebShell。

            Resin漏洞

            Resin相對Tomcat的安全問題來說少了很多,Cvedetails上的Resin的漏洞統計圖:

            enter image description here

            Cvedetails統計詳情: http://www.cvedetails.com/product/993/Caucho-Technology-Resin.html?vendor_id=576

            Cvedetails漏洞詳情: http://www.cvedetails.com/vulnerability-list/vendor_id-576/product_id-993/Caucho-Technology-Resin.html

            CVE 通用漏洞與披露: http://cve.scap.org.cn/cve_list.php?keyword=resin&action=search&p=1

            Resin3.1.3:

            enter image description here

            Fixed BugList: http://bugs.caucho.com/changelog_page.php

            Weblogic


            WebLogic是美國bea公司出品的一個application server確切的說是一個基于Javaee架構的中間件,BEA WebLogic是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。

            Weblogic版本

            Oracle簡直就是企業應用軟件終結者,收購了Sun那個土鱉、Mysql、BAE Weblogic等。BAE在2008初被收購后把BAE終結在Weblogic 10。明顯的差異應該是從10.x開始到最新的12c。這里主要以Weblogic9.2和最新的Weblogic 12c為例。

            Weblogic默認配置

            Weblogic默認端口是7001,Weblogic10g-12c默認的管理后臺是:http://localhost:7001/console

            Weblogic10 以下默認后臺地址是:http://192.168.80.1:7001/console/login/LoginForm.jsp

            管理帳號是在建立Weblogic域的時候設置的。

            enter image description here

            Weblogic控制臺:

            enter link description here

            Weblogic10以下默認管理帳號:weblogic密碼:weblogic。關于Weblogic10++的故事還得從建域開始,默認安裝完Weblogic后需要建立一個域。

            WebLogic中的"域"?

            域環境下可以多個 WebLogic Server或者WebLogic Server 群集。域是由單個管理服務器管理的 WebLogic Server實例的集合。 Weblogic10++域默認是安裝完成后由用戶創建。帳號密碼也在創建域的時候設置,所以這里并不存在默認密碼。當一個域創建完成后配置文件和Web應用在:Weblogic12user_projectsdomains”域名”。

            Weblogic 默認安全策略

            1、Weblogic默認密碼文件:

            Weblogic 9采用的3DES(三重數據加密算法)加密方式,Weblogic 9默認的管理密碼配置文件位于:

            weblogic_9weblogic92samplesdomainswl_serverserversexamplesServersecurityoot.properties
            

            boot.properties:

            # Generated by Configuration Wizard on Sun Sep 08 15:43:13 GMT 2013
            username={3DES}fy709SQ4pCHAFk+lIxiWfw==
            password={3DES}fy709SQ4pCHAFk+lIxiWfw==
            

            Weblogic 12c采用了AES對稱加密方式,但是AES的key并不在這文件里面。默認的管理密碼文件存放于:

            Weblogic12user_projectsdomainsase_domainserversAdminServersecurityoot.properties 
            

            (base_domain是默認的”域名”)。

            boot.properties:

            boot.properties:
            # Generated by Configuration Wizard on Tue Jul 23 00:07:09 CST 2013
            username={AES}PsGXATVgbLsBrCA8hbaKjjA91yNDCK78Z84fGA/pTJE=
            password={AES}Z44CPAl39VlytFk1I5HUCEFyFZ1LlmwqAePuJCwrwjI=
            

            怎樣解密Weblogic密碼?

            Weblogic 12c:

            Weblogic12user_projectsdomainsase_domainsecuritySerializedSystemIni.dat
            

            Weblogic 9:

            weblogic_9weblogic92samplesdomainswl_serversecuritySerializedSystemIni.dat
            

            解密詳情:http://drops.wooyun.org/tips/349http://www.blogjava.net/midea0978/archive/2006/09/07/68223.html

            2、Weblogic數據源(JNDI)

            Weblogic如果有配置數據源,那么默認數據源配置文件應該在:

            Weblogic12user\_projectsdomainsase\_domainconfigconfig.xml
            

            enter image description here

            Weblogic獲取Webshell ?

            enter image description here

            Weblogic 9 GetShell: http://drops.wooyun.org/tips/402

            Websphere


            WebSphere 是 IBM 的軟件平臺。它包含了編寫、運行和監視全天候的工業強度的隨需應變 Web 應用程序和跨平臺、跨產品解決方案所需要的整個中間件基礎設施,如服務器、服務和工具。

            Websphere版本

            Websphere現在主流的版本是6-7-8,老版本的5.x部分老項目還在用。GetShell大致差不多。6、7測試都有“默認用戶標識admin登錄”,Websphere安裝非常麻煩,所以沒有像之前測試Resin、Tomcat那么細測。

            Websphere默認配置

            默認的管理后臺地址(注意是HTTPS): https://localhost:9043/ibm/console/logon.jsp

            默認管理密碼:

            1、admin (測試websphere6-7默認可以直接用admin作為用戶標識登錄,無需密碼) 
            2、websphere/ websphere
            3、system/ manager
            

            默認端口:

            管理控制臺端口 9060
            管理控制臺安全端口 9043
            HTTP傳輸端口 9080
            HTTPS傳輸端口 9443
            引導程序端口 2809
            SIP端口 5060
            SIP安全端口 5061
            SOAP連接器端口 8880
            SAS SSL ServerAuth端口 9401
            CSIV2 ServerAuth 偵聽器端口 9403
            CSIV2 MultiAuth 偵聽器端口 9402
            ORB偵聽器端口 9100
            高可用性管理通訊端口(DCS) 9353
            服務集成端口 7276
            服務集成安全端口 7286
            服務集成器MQ互操作性端口 5558
            服務集成器MQ互操作性安全端口 5578
            

            8.5安裝的時候創建密碼: ?

            enter link description here

            Websphere8.5啟動信息:

            enter image description here

            Websphere8.5登錄頁面: https://localhost:9043/ibm/console/logon.jsp

            enter link description here

            Websphere8.5 WEB控制臺:

            enter image description here

            Websphere6-7默認控制臺地址也是: http://localhost:9043/ibm/console,此處用admin登錄即可。

            enter image description here

            Websphere GetShell

            本地只安裝了8.5測試,Websphere安裝的確非常坑非常麻煩。不過Google HACK到了其余兩個版本Websphere6和Websphere7。測試發現Websphere GetShell一樣很簡單,只是比較麻煩,一般情況直接默認配置Next就行了。Websphere7和Websphere8 GetShell基本一模一樣。

            Websphere6 GetShell

            需要注意的是Websphere6默認支持的Web應用是2.3(web.xml配置的web-app_2_3.dtd)直接上2.5是不行的,請勿霸王硬上弓。其次是在完成部署后記得保存啊親,不然無法生效。

            enter image description here

            Websphere8.5 GetShell

            部署的時候記得寫上下文名稱哦,不讓無法請求到Shell。

            enter image description here

            注意:

            如果在Deploy低版本的Websphere的時候可能會提示web.xml錯誤,這里其實是因為支持的JavaEE版本限制,把war包里面的web.xml改成低版本就行了,如把app2.5改成2.3。

            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
            <web-app>
                <welcome-file-list>
                    <welcome-file>index.jsp</welcome-file>
                </welcome-file-list>
            </web-app>
            

            GlassFish


            GlassFish是SUN的產品,但是作為一只優秀的土鱉SUN已經被Oracle收購了,GlassFish的性能優越對JavaEE的支持自然最好,最新的Servlet3.1僅GlassFish支持。

            GlassFish版本

            GlassFish版本比較低調,最高版本GlassFish4可在官網下載: http://glassfish.java.net/ 。最新4.x版剛發布不久。所以主流版本應當還是v2-3,3應該更多。支持php(v3基于Quercus),jRuby on Rails 和 Phobos等多種語言。

            GlassFish 默認配置

            默認Web控制后臺: http://localhost:4848

            默認管理密碼: GlassFish2默認帳號admin密碼adminadmin 。

            GlassFish3、4 如果管理員不設置帳號本地會自動登錄,但是遠程訪問會提示配置錯誤。

            Configuration Error 
            Secure Admin must be enabled to access the DAS remotely.
            

            默認端口:

            使用Admin的端口 4848。
            使用HTTP Instance的端口 8080。
            使用JMS的端口 7676。
            使用IIOP的端口 3700。
            使用HTTP_SSL的端口 8181。
            使用IIOP_SSL的端口 3820。
            使用IIOP_MUTUALAUTH的端口 3920。
            使用JMX_ADMIN的端口 8686。
            使用OSGI_SHELL的默認端口 6666。
            使用JAVA_DEBUGGER的默認端口 9009。
            

            默認數據源:

            enter image description here

            GlassFish GetShell ?

            enter image description here

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线