.NET Form Authentication suffers from an insecure redirect vulnerability.
b7d5029d3689d071162b8d70d1707c61e41f2ed9e7f4e037b358ca18559e4141
Seeker Research Center Security Advisory
By Irene Abezgauz
===========
I. Overview
===========
An Insecure Redirect vulnerability has been identified in the .NET Form
Authentication - in the Redirect From Login mechanism. This
vulnerability allows an attacker to craft links that contain redirects
to malicious sites in the ReturnURL parameter.
The exploitation technique detailed in this document bypasses the
CrossAppRedirects restriction and was successfully performed on
applications that do not have EnableCrossAppRedirects in the web.config
(false by default), or have the EnableCrossAppRedirects attribute
explicitly set to false in web.config.
A friendly formatted version of this advisory is available at:
http://www.seekersec.com/advisories/AdvMS20120216.html
============
II. Details
============
The .NET Forms Authentication Redirect From Login mechanism is
vulnerable to insecure redirect attacks.
http://<myApplication>/Login.aspx?ReturnURL=
By sending specially crafted input containing a backslash ("\") at the
end of the URL as the value of the ReturnURL parameter it is possible to
bypass the CrossAppRedirects restrictions and embed links that lead to
sites outside the current application.
Once a victim follows the specially crafted link he indeed arrives at
the login screen of the vulnerable application. Once he submits his
username and password and performs a successful login instead of being
redirected to the URL in the DefaultURL property he will be redirected
to the URL in the value of the ReturnURL parameter.
To reproduce a simple Login page can be created, for example Login.aspx,
and the following in web.config:
<authentication mode="Forms">
<forms name=".ASPXFORMSDEMO" loginUrl="Login.aspx"
protection="All" path="/" timeout="30" />
</authentication>
===========
IV. Exploit
===========
An attacker can embed any link that terminates with the "\" (backslash)
character, for example:
http://<myApplication>/Login.aspx?ReturnURL=http://www.seekersec.com\
==================
V. Vendor Response
==================
Microsoft has released a fix for this vulnerability, see
http://technet.microsoft.com/en-us/security/bulletin/MS11-100 for
further information
=====================
VII. Affected Systems
=====================
.NET frameworks 2.0, 3.5 and 4.0 were tested and found vulnerable to
this flaw in simple login that has Form Authentication web.config
configuration with default parameters.
============
VIII. Credit
============
The vulnerability was discovered by Irene Abezgauz, Seeker Security
--------------------
Irene Abezgauz
Product Manager
Seeker Security
www.seekersec.com
E-Mail: irene@seekersec.com