Dit is het weblog van Ferdinand Vroom. http://www.ferdinandvroom.nl

[Full Disclosure] Microsoft BeLux website gehacked...

| dinsdag, november 07, 2006
Gehacked is mischien wat overdreven gesteld, maar toch!

Ready for a New Day
Een vriend van me, Michael Kogeler, is Marketing Organisation Director bij Microsoft BeLux. a.s. Donderdag wordt er een groot evenement georganiseerd rondom de lancering van Windows Vista, 2007 Microsoft Office System en Exchange Server 2007. Het evenement wordt ondersteunt met een website. Die ik natuurlijk ben gaan bekijken omdat ik benieuwd was naar de agenda. Maar in een vorm van beroepsdeformatie heb ik het ook een beetje onderworpen aan een kleine security test...

Cross Site Scripting (XSS)
De website www.readyforanewday.be is in Flash gebouwd en wordt gehost op het Windows 2003 server platform met de IIS 6.0 webserver.
De website is gebouwd door Proximity, onderdeel van het BBDO netwerk. Helaas zitten er Cross Site Scripting problemen in het formulier waarmee collega's uitgenodigd kunnen worden voor het evenement.
Er wordt geen input en output validatie uitgevoerd waardoor het mogelijk is HTML en JavaScript in de velden in te voeren die nog wordt uitgevoerd ook!
Zo heb ik een uitnodiging van Steve Ballmer voor Michael gemaakt...
(link naar de printscreen)

[Full Disclosure]
Als rechtgeaarde "whitehat" moet ik natuurlijk laten zien hoe de hack in elkaar steekt en wat eraan gedaan kan worden om misbruik verder te voorkomen.
Het probleem zit o.a. in het "Invite a colleague" formulier. Bij het testen op XSS vulnerabilities begin ik meestal met het invoeren van een eenvoudige HTML of JavaScript tag. In dit geval in het veld First name. Zet daar b.v. tussen de h1 tags een tekst in en klik op de preview knop.
Als je dan de tekst in grote dikke letters ziet, weet je dat de input klakkeloos wordt overgenomen en wordt uitgevoerd door de webserver. Feitelijk kun je dan alle html tags gebruiken om de website te verbouwen...
Ik ben dat vervolgens gaan uitbouwen met een iframe waarin ik een foto van Steve Ballmer open met een tekst waardoor het lijkt dat Michael door Steve himself wordt uitgenodigd...

Hoe voorkomen?
De oplossing bestaat uit het valideren van de input. Door HTML tags te filteren kom je al een heel eind. Beter nog is het gebruik van een regular expression waarmee alle mogelijke opties ongedaan gemaakt kunnen worden.
Adobe beschreef het probleem al in 2004.
Nu maar hopen dat Proximity het probleem snel oplost. Microsoft heeft een hoop geinvesteerd in haar security imago en door dergelijke domme fouten, kunnen ze bijna weer opnieuw beginnen...