Maand van de problemen met browsers
We hebben allerlei "maand van-" series gehad de afgelopen tijd: de maand van Apple bugs, de maand van PHP bugs, enzovoorts. Deze maand lijkt wel een beetje de maand van de browser problemen te zijn. 5 problemen met Firefox en Internet Explorer.
- Internet Explorer voert Javascript in plaatje met foutief mime-type uit
- Internet Explorer voert Javascript in EXIF data van PNG bestand uit
- Firefox laat na om resource:// URL juist te filteren
- Sommige Firefox extensies zijn kwetsbaar voor Man-in-the-Middle aanvallen
- Firefox voert Javascript in Refresh HTTP header uit
Internet Explorer voert Javascript in plaatje met foutief mime-type uit
Afgelopen week rapporteerde Tweakers.net dat een van haar medewerkers, Tino Zijdel, een cross-site-scripting probleem had gevonden in Internet Explorer, of eigenlijk zelfs twee. Op het moment dat je namelijk een GIF bestand als JPEG verstuurt (je stuurt een Content-Type: image/jpeg voor een GIF bestand) en je zet daar een stuk Javascript in dan zal Internet Explorer proberen met de HTML renderer chocola te maken van dat plaatje. Het probleem is alleen dat dat stuk Javascript dan wordt uitgevoerd.
Internet Explorer voert Javascript in EXIF data van PNG bestand uit
Een zelfde soort probleem treedt op bij PNG files. Wanneer een PNG bestand wordt uitgebreidt met een textblok waarin HTML en Javascript staat en het plaatje wordt direct benaderd, dan voert Internet Explorer deze Javascript uit.
In een tweede proof of concept, wordt een png-bestand met een text-extensieblok geserveerd. In dit blok wordt een stukje javascript-code als commentaar geplaatst. Het meegeleverde mimetype is correct en wanneer de afbeelding in een img-tag geplaatst wordt, is er dan ook niets aan de hand. Bij toegang via een rechtstreekse link, wordt de html en het script in het png-bestand echter uitgevoerd.
Microsoft heeft aangegeven deze twee issues te zien als een feature, is niet van plan dit probleem op te lossen en adviseert webdevelopers die werken met geuploadde content dit probleem server-side op te lossen.
Impact: Wanneer plaatjes direct worden bekeken (dus dit geldt NIET voor plaatjes die via <img> tags geladen worden) wordt er Javascript uitgevoerd in de context van het huidige domein. Bied jij op jouw website de mogelijkheid om en plaatjes te uploaden en deze volledig te bekijken? Dan kan het zijn dat je een cross-site-scripting probleem hebt.
Firefox laat na om resource:// URL juist te filteren
Ha.ckers.org meldt dat ook de huidige versies van Firefox problemen hebben. Zo verzuimt Firefox bij resource URLs urlencoded directory separators te filteren, wat een kwaadwillende een poort naar het filesystem van de gebruiker geeft. Het is (mij) vooralsnog niet gelukt om ook daadwerkelijk een file te lezen met Javascript, maar met Firebug kom je lokaal in elk geval iets teveel info tegen. Combineer dat met de problemen die Firebug heeft gehad (en mensen die mogelijk nog die oude versie draaien) en dan is het toch zaak dat dat snel opgelost moet worden.
Impact: Zover bekend kunnen mensen via dit gat alleen bepalen of de gebruiker bepaalde bestanden beschikbaar heeft op het filesystem.
Sommige Firefox extensies zijn kwetsbaar voor Man-in-the-Middle aanvallen
Christopher Soghoian rapporteert vandaag dat verschillende Firefox extensies kwetsbaar zijn voor Man-in-the-Middle aanvallen wat betreft hun automatische updates. Doordat updates voor deze extensies niet via de officiele Mozilla Addons website worden geleverd en ook niet over een SSL verbinding worden geleverd, zijn mensen die gebruik maken van publieke en/of onbeveiligde (WiFi) netwerken kwetsbaar:
The vulnerability is made possible through the use of a man in the middle attack, a fairly old computer security technique. Essentially, an attacker must somehow convince your machine that he is really the update server for one or more of your extensions, and then the Firefox browser will download and install the malicious update without alerting the user to the fact that anything is wrong. While Firefox does at least prompt the user when updates are available, some commercial extensions (including those made by Google) have disabled this, and thus silently update their extensions without giving the user any say in the matter.
Kortom, wanneer iemand invloed heeft op hoe een domein naam resolved binnen jouw netwerk zullen ze in staat zijn om Firefox een extensie te laten updaten met een update van hun keuze, zonder dat jij het merkt. Deze update zou dus gevaarlijke code kunnen bevatten. Het filmpje op Christophers's site helpt om het probleem te illustreren.
Zie ook: Developer.Mozilla.org: Addon updates.
Users are most vulnerable to this attack when they cannot trust their domain name server. Examples of such a situation include:
- Using a public or unencrypted wireless network.
- Using a network router (wireless or wired) at home that has been infected/hacked through a drive by pharming attack. This particular risk can be heavily reduced by changing the default password on your home router.
- Using a 'network hub' - either at the office, a university, or elsewhere.
Christopher heeft contact gezocht met de verschillende auteurs van extensies waarvan hij weet dat ze kwetsbaar zijn hiervoor maar nog niet alle extensies zijn gefixed. Een overzicht van extensies (deze lijst is niet geheel compleet volgens hem) staat in het artikel.
Impact:Alleen mensen die werken binnen netwerken die ze niet kunnen vertrouwen, Firefox gebruiken en een van de kwetsbare extensies gebruiken zijn kwetsbaar.
Firefox voert Javascript in Refresh HTTP header uit
Het laatste probleem, ook via ha.ckers.org, is niet echt een probleem maar misschien meer een rariteit. Het probleem ligt in het verwerken van de zgn. Refresh HTTP header. Deze header ziet er als volgt uit:
-
Refresh: 1; http://www.scriptorama.nl/
Deze header vertelt de browser: wacht 1 seconde en stuur de gebruiker dan door naar Scriptorama.nl. Geef je hier nu in plaats van een gewone URL een 'Javascript URL' op, dan voert Firefox deze fijn uit voor je:
-
Refresh: 1; javascript: alert('Booya');
Impact: Laag, mensen kunnen op remote sites meestal niet zomaar headers injecteren.
Volg Scriptorama via RSS!
Reageer ook!
"Microsoft heeft aangegeven deze twee issues te zien als een feature"
Echt ik heb apen gezien die nog slimmer zijn dan dan stelletje oer idioten daar!
CSS goed verwerken kunnen ze niet maar XSS bestempelen als een feature wel.
Door Sebastiaan Stok
op 05.31.07 @ 6:41 pm | Permalink
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>