######################################### Application: Firefox Vendors: http://www.mozilla.com Version: 0.9.1 / 0.9.2 Platforms: Windows Bug: Certificate Spoofing (Phishing) Risk: High Exploitation: Remote with browser Date: 25 July 2004 Author: Emmanouel Kellinis e-mail: me@cipher(dot)org(dot)uk web: http://www.cipher.org.uk List : BugTraq(SecurityFocus) ID: securityfocus.com/bid/10248/ ######################################### ======= Product ======= A popular Web browser,good alternative of IE and "The web browser" for linux machines, used to view pages on the World Wide Web. === Bug === Firefox has caching problem, as a result of that someone can spoof a certificate of any website and use it as his/her own. The problem is exploited using onunload inside < body> and redirection using Http-equiv Refresh metatag,document.write() and document.close() First you direct the redirection metatag to the website of which you want to spoof the certificate, then inside the < body> tag you add onulnoad script so you can control the output inside the webpage with the spoofed certificate. After that you say to firefox, as soon as you unload this page close the stream, aparently the stream you close is the one of the redirection's website, you do that with document.close(). Now you can write anything you want , you do that using document.write(). After writing the content of you choice you close the stream again , usually firefox wont display your content, although if you check the source code you see it , so the last thing is to refresh the new page (do that using window.location.reload()), after that you have your domain name in the url field , your content in the browser and the magic yellow Lock on the bottom left corner, if you pass your mouse over it you will see displayed the name of the website you spoofed the certificate, if you double click on it you will check full information of the certificate without any warning ! You dont need to have SSL in your website ! it will work with http. ===================== Proof Of Concept Code ===================== Spoofer< /TITLE> <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=https://www.example.com"> </HEAD> <BODY onunload=" document.close(); document.writeln('<body onload=document.close();break;> <h3>It is Great to Use Example's Cert!'); document.close(); window.location.reload(); "> </body>