15 Nederlandse websites lek

xss-fout-nederlandse-websites
Ik kop hem graag net zo hard in als WebWereld, zij hadden gisteren namelijk het bericht “Website Volkskrant lek“. Bij de Volkskrant was er sprake van een XSS-bug(ofwel; cross-side scripting). Geen unieke fout en daarom zal ik vandaag ook eens 15 websites plaatsen die kwetsbaar zijn voor XSS-fouten.

XSS-lek Nederlandse banken
Eerder dit jaar waren diverse websites van Nederlandse banken kwetsbaar voor XSS-fouten. De woordvoerster van de SNS Bank zei begin 2009 over een XSS-lek: “De betalingsgegevens zijn niet in gevaar“. Mwaa.., het moge duidelijk zijn dat een woordvoersters geen programmeur is, want het betalingsverkeer kon wel in gevaar worden gebracht.

Die vrouw dacht vast en zeker “Ahh leuk zo’n pop-up boxje, dat is toch niet gevaarlijk?!?“. De javascript alert-box was inderdaad niet gevaarlijk, maar wat te denken van de cookies stealing of phishingaanvallen?

De gevaren
De afgelopen jaren zijn duizenden mensen met elkaar in discussie geweest over het gevaar van XSS-fouten. De één zegt “soms gevaarlijk“, de ander zegt “altijd gevaarlijk“. En anderen zeggen weer “afhankelijk van de website en/of het doel van de website“. Ik sluit mij graag aan bij dat laatste “het is altijd gevaarlijk, hoewel niet voor alle websites even doeltreffend“.

Een aantal mogelijkheden van XSS-misbruik:
- Stelen van cookies
- Veranderen van content
- Gebruik voor phishingaanvallen
- Implementeren van malware

4 uurtjes werk
Afijn, ik besluit de proef op de som te nemen en te kijken welke websites XSS-fouten bevatten. De huis-tuin-keuken website geloof ik wel, dus we pakken een aantal grote websites. Ik bekijk een aantal websites van startpagina.nl en ik bekijk een aantal websites die bovenaan staan in google. 4 uurtjes later heb ik 15 websites gevonden die XSS-fouten bevatten.

ns.nl
1-xss-lek-ns

frieslandbank.nl
2-xss-lek-frieslandbank

route.anwb.nl
3-xss-lek-route-anwb

minaz.nl
4-xss-lek-minaz

tudelft.nl
5-xss-lek-tudelft

vkbanen.nl
6-xss-lek-vkbanen

vacaturekrant.nl
7-xss-lek-vacaturekrant

trouw.nl
8-xss-lek-trouw

vergelijk.nl
9-xss-lek-vergelijk

bedandbreakfast.nl
10-xss-lek-bed-breakfast

bruna.nl
11-xss-lek-bruna

freerecordshop.nl
12-xss-lek-freerecordshop

cz.nl
13-xss-lek-cz

drogisterij.net
14-xss-lek-drogisterij

ad.nl
15-xss-lek-ad

AD.nl, goed, maar net niet goed genoeg…
De eerste 14 spreken waarschijnlijk voor zich. Ergens in die websites is het mogelijk om user-input te geven, die al dan niet voorzien is van javascript. Ze waren niet allemaal makkelijk te vinden, maar iemand met kwaadwillige bedoelingen heeft deze net zo snel gevonden als mij. De laatste XSS-website is een apart verhaal, bij AD.nl was het niet direct mogelijk om de website te voorzien van javascript omdat er een aantal woorden/tags worden uitgesloten.

Echter is het wel mogelijk om quotes te gebruiken en deze quotes komen ook in de browser terecht. Helaas was het niet mogelijk om een extra HTML-attribuut toe te voegen, althans dat dacht ik…. het was namelijk niet mogelijk om een onload of onclick event toe te voegen. Maar er zijn meer mogelijkheden met javascript, denk aan onfocus of onmousedown. Deze bleken dus wel te werken. Mijn volgende probleem was het filter op het woord “alert” en “(” en “)”. Maar…, een XSS-fout is ook uit te buiten zonder deze woorden.

De oplossing is dus het meegeven van een extra onfocus of onmousedown. Aangezien “(” en “)” verboden zijn is het wel mogelijk om een document.location.href toe te voegen. Als men nu de focus plaatst in het zoekveld, redirecten we door naar http://www.test.nl. Maarja, hoe snel klikt een gebruiker wéér in het zoekveld? Waarschijnlijk niet snel, maar dit probleem is op te lossen door het zoekveld een style-attribuut mee te geven dat absoluut even groot is als de browser :-)

Full disclosure
Uit ervaring weet ik dat het veel tijd en moeite kost om met de juiste personen van de organisatie in contact te komen. Ik heb daarom besloten om alle websites met een screenshot op deze pagina te plaatsen. Bedrijven die vragen hebben over de fout in hun website kunnen een e-mail sturen naar info[at]hackblog.nl.

De les van vandaag “Never trust user input” ;-)

Reacties
Ik heb niet met iedereen persoonlijk contact gehad, ik heb wel alle bedrijven en organisaties een e-mail gestuurd. Mochten zij een reactie sturen, zal ik deze hier plaatsen.

Organisatie Reactie
Ministerie van Algemene Zaken 13-11-2009 14:13
Bed & Breakfast 13-11-2009 16:53
Vergelijk.nl 15-11-2009 18:42
Bruna 16-11-2009 15:35
- – - - – -

REACTIES / 13 REACTIES

gekke hekkert! :) naice topic

FlipperHMD schreef dit op 13 Nov 2009 om 09:37

Nou dat zijn zeker niet de minste jongens! Thumbs up!

Mark schreef dit op 13 Nov 2009 om 09:44

Eigenlijk ook wel weer grappig. Trouw schreef een aantal dagen geleden over “Een, twee, drie – en gekraakt is de website!” op http://www.trouw.nl/hack
Nu zijn zij zelf de pineut.

Het blijft een lastig vak, secure programming…

Maikel H. schreef dit op 13 Nov 2009 om 10:08

Leuke uitleg bij AD.nl.., misschien dat er ook nog mogelijkheden waren met behulp van dit:
document.onload = document.location.href
Of werd het woord onload ALTIJD eruit gehaald?

Mijn ervaring is dat bedrijven niet snel reageren. Kijk maar eens op de website http://www.xssed.com daar staan duizenden websites met XSS-fouten. Soms zelfs van een paar jaar geleden. Uiteraard is dat ERG slecht..

ATSNL schreef dit op 13 Nov 2009 om 13:49

test
edit: geen idee waarom je dit test, maar je test is geslaagd :-)

Test schreef dit op 13 Nov 2009 om 16:38

interessant, maar hoe weet ik dat je niet aan het photoshoppen bent geweest? Bij een paar voorbeelden kon ik zo goed als zeker lezen wat voor script je had ingegeven maar als ik die invoerde op dezelfde site, kreeg ik geen reactie

Rutger schreef dit op 13 Nov 2009 om 23:45

@Rutger
Misschien dat het bij enkele websites al is opgelost. Maar geef maar eens een URL van een website, dan wil ik best de URL geven waarmee XSS mogelijk is.

ROOT schreef dit op 14 Nov 2009 om 04:14

de eerste twee, doe maar wel even via pm.

Rutger schreef dit op 14 Nov 2009 om 08:35

@Rutger,
Zie je e-mail! Check ook even je ongewenste e-mail ivm hoeveelheid URL’s…

ROOT schreef dit op 14 Nov 2009 om 13:32

Bild.de (oké, niet Nederlands, maar wel een zeer druk bezochte website bij onze oosterburen) heeft ook een vrij duidelijke XSS, en bovendien, ze staan directory listing toe.
Maar wat zegt een XSS precies. De Bild.de website staat geen url’s toe waar vraagtekens in zitten, in de XSS. Dus cookies stelen, kan dan niet zomaar.

scrib schreef dit op 17 Nov 2009 om 01:55

Toch grappig. De eerste les die je eigenlijk krijgt als webdeveloper, is dat je nooit de input van gebruikers mag gebruiken zonder ernaar te kijken. Toch grappig dat zoveel websites, ook websites die veel bezocht worden en die hier niet tussenstaan, relatief makkelijk te XSS-en zijn.

Ik zal, als, met de nadruk op als lol, ik tijd heb nog een andere site testen op een paar simpele dingen. Heb namelijk een vermoeden dat in die website een redelijke bug zit…. Als ik hem kan vinden stuur ik hem je wel door via de mail ;-)

__destruct schreef dit op 17 Nov 2009 om 08:19

Overigens, als toevoeging op mijn bericht. Heb niet zoveel tijd als jij, maar toch nog twee websites via startpagina die volgens mij redelijk goed worden bezocht…

Online-Dictionary.nl

http://www.online-dictionary.nl/result.php?word=%3Cscript%3Ealert(%27Als%20ik%20je%20nu%20naar\\n\\nwww.destruct.nl\\n\\nhad%20gestuurd,%20was%20jij%20niet%20blij%20geweest%20;-)%27)%3B%3C%2Fscript%3E&SrcLang=1&DstLang=2

Drogisterij.net ook..
http://www.drogisterij.net/?zoekterm=%3Cscript%3Ealert(%27XSS+with+redirect+to+www.destruct.nl%27)%3B%3C%2Fscript%3E&x=0&y=0&mode=datab&zoekform=1&zoekcode=ODMuMTYzLjcyLjEzMg%3D%3D

http://www.gezondheidsnet.nl/nieuwsbrief/ Nieuwsbrief systeem staat in verbinding met een MySQL server. SQL injectie mogelijk :-) en natuurlijk directory listing @ http://www.gezondheidsnet.nl/nieuwsbrief/ lol..

Hier ook SQL injectie… http://www.proefabonnementen.nl/index.php?action=zoeken&trefwoord=Simple%20SQL%20Injection%20%27&submit.x=0&submit.y=0

Groetjes!

__destruct schreef dit op 17 Nov 2009 om 16:40

alert(”Popup-die-XSS-vulnerability-aantoont”);

alert("Popup-die-XSS-vulnerability-aantoont"); schreef dit op 21 Nov 2009 om 11:34