Weblogic6.1 server存在guest用户(密码guest),用guest/guest访问远程服务器后,本地会生成一个weblogic.security.acl.internal.AuthenticatedUser对象,该对象中用来标志用户身份有效性的用户签名为远程系统system用户的密码、用户账号、对象生成时间三者的信息摘要。AuthenticatedUser对象是可序列化对象,通过重写本地的AuthenticatedUser类,可以读出对象中的签名、账号、生成时间,然后可能暴力破解远程系统的system用户密码。
Weblogic6.1 server缺省允许用户匿名访问服务器上的部分信息。如匿名用户可以通过Context列出服务器上部署的各种资源,其中最敏感的应属datasource。这样,用户完全可以根据datasource取得数据库连接,从连接中读出数据库中表以及表结构,从而可以像访问本地数据库一样访问企业应用部署在防火墙后的数据库。当然,应用可以对datasource以及其他资源加上安全限制,但很少有人这么做。
Weblogic5.1、Weblogic6.0中也有这个问题,Weblogic7.0以后取消了guest用户,相对较为安全。
Weblogic6.1 server域主服务器(administration server)在启动的时候,会缺省部署几个应用: console.war, wl_management_internal1.war, wl_management_internal2.war。console的作用大家都清楚,但后两个internal的应用的用途耐人寻味,大家可以反编译其中的class看看。通过访问wl_management_internal2,远程用户不经授权就可以下载服务器上的部署的应用包,读取敏感的配置文件或者操作系统的其他文件,甚至可以上载部署自己的应用,可以说是对服务器的完全控制。Weblogic的其他版本如Weblogic6.0、Weblogic7.0也存在该漏洞。