After a very long time, our adventure / series of writeups in web fingerprinting is finally continuing. Today, we will be visiting Opera again, using an ‘exploit’ we (we believe we’re the first ones to find it, but we may be wrong) discovered. The exploit allows fingerprinting / detection of the browser, Opera. This is because Opera has a problem / exploit / vulnerability / flaw, whatever you want to call it. Normally browser’s will block pages from making requests to the browser’s own pages (eg.
opera://about). But Opera doesn’t.
We can exploit this in a simple process:
- Create an iframe
- Make the source
- Set the iframe’s onload event to run function X
- Add the iframe to the body (or anywhere else in the document / DOM)
- If function X runs / the iframe is loaded, the browser is Opera
Proof of concept / example code:
Note: We have contacted Opera on the issue several months ago and we have not received a reply.
Tested on the latest version of Opera as the time of writing this: