In het land der blinden... part 2

Door RobIII op dinsdag 2 december 2008 02:12 - Reacties (26)
Categorieën: In het land der blinden..., Life as a developer, Rants, Views: 7.252

Het is inmiddels twee weken geleden dat WAXTRAPP op de hoogte werd gesteld van de XSS lekken die ze in hun sites hebben. Er is inmiddels wat stof opgewaaid aldaar en mede daardoor is er toen door WAXTRAPP contact met ondergetekende opgenomen. Een kort over-en-weer was het resultaat en beterschap werd beloofd. Vandaag de follow-up! :Y)

http://tweakers.net/ext/f/WghoPQzSQXJtN0MkerJb8TPr/full.jpgWat ik in mijn carrière met de regelmaat van de klok tegen kom zijn de "I told you so"-situaties. Ik heb door de jaren heen met veel consultants, managers en andere bobo's* gewerkt en het zal niet voor het eerst zijn dat een, goedbedoeld I might add, advies compleet in de wind wordt geslagen. Ik ben ook maar een mens en ook ik maak fouten (echt ja! :P ). Maar als mensen met verstand van zaken (of, genuanceerder, méér verstand van zaken dan mezelf) me een advies geven dan zal ik het allerminst in overweging nemen en onderzoeken waar nodig. Je eigen fouten erkennen, weten en accepteren dat je ze maakt, en er niet moeilijk over doen is een sterke persoonlijke eigenschap die je dagelijks leven kan vergemakkelijken maar het is er zéker één die een goede ontwikkelaar dient te hebben. Steve McConnel heeft in zijn boek Code Complete (aanrader!) zelfs een compleet hoofdstuk gewijd aan goede eigenschappen die een programmeur zou moeten bezitten; zelfkritiek is daar een belangrijke van.
* "bobo's" is iedereen die om het ontwikkelen heen hangt; in principe iedereen die niet het daadwerkelijke ontwikkelen uitvoert. En niets tegen "bobo's"; zij moeten er ook zijn om een project in goede banen te leiden, om een project überhaupt verkocht te krijgen enzovoorts en zijn een even volwaardig lid van een ontwikkelteam als ieder ander!

Twee weken geleden wees ik WAXTRAPP dus op een XSS probleem in de sites die zij bouwen. Shit happens. Kan gebeuren, we maken allemaal fouten. Het werd dan ook sportief door WAXTRAPP opgepakt en er zou hard gewerkt gaan worden aan een fix. Er werd toen al door Bas Groot gehint naar een "filtertje" om dit probleem te verhelpen. Ik heb toen meteen, in datzelfde telefoongesprek, mijn twijfels en bedenkingen daarover geuit. Daarop werd mij, en ons verteld dat we maar vertrouwen moesten hebben in hun oplossing en maar af moesten wachten. En inderdaad, sinds gisteren is in de WAXTRAPP site de originele XSS exploit gevonden en gedicht. Mooi! Hulde! _O_

http://tweakers.net/ext/f/C4mnujMdWQ3C9ry9ltAe9tWJ/full.jpg Maar wat blijkt? De dames en/of heren bij WAXTRAPP hebben inderdaad gekozen voor een 'filtertje' waarbij, zover ik kan zien, de quote (") en < en > tekens uit zoekteksten worden verwijderd. Leuk, maar dat filtertje is dus niet afdoende. Ik heb weinig trek er meer moeite in te steken, of het voor anderen (nog) makkelijk(er) te maken, maar je kunt je voorstellen dat deze exploit makkelijk aan te passen is zodat de gevolgen erger zullen zijn. De filter wordt klaarblijkelijk toegepast in de "U heeft gezocht op <blah>" zinsnede, maar bij de inhoud van te textbox (dus in het value attribuut van het input element) niet (helemaal). Tevens demonstreert dit dat de testprocedure van WAXTRAPP op z'n zachts gezegd érg gebrekkig is; en dat is als er al een testprocedure aanwezig is. Het blijft speculatie want we kunnen niet 'binnen kijken' maar dit spreekt in mijn ogen toch wel boekdelen.

Hier blijkt maar weer dat het toepassen van 'filtertjes' om 'enge tekens' weg te filteren:
  • (Bijna?) Nooit waterdicht is
  • Omslachtig(er) is, en moeilijker te onderhouden
  • Ook nog eens gebruiksonvriendelijk is; waarom zou ik niet mogen zoeken op bepaalde tekens? Dat ze weinig relevante resultaten zullen opleveren boeit niet, ik mag bij Google (of eender welke andere zoekmachine) ook prima zoeken op 'enge tekens' zonder dat daar sprake is van XSS
De gangbare manier, namelijk correct escapen (of HTML encoden zo je wil), is, zoals iedere zichzelf respecterende ontwikkelaar je zal vertellen:
  • 'Waterdicht'
  • Makkelijk(er) te implementeren
  • Gebruiksvriendelijk(er); het boeit niet wat ik in pons; de pagina doet wat verwacht wordt
http://tweakers.net/ext/f/uWnMtIvQkNPaLmkWW3bBn66G/full.jpg Waar ik echter nu nog veel meer voor vrees is dat het escapen bij WAXTRAPP dusdanig verkeerd begrepen wordt dat dit, toch wel basis-, principe structureel verkeerd aangepakt wordt en dan heb je dus nog een veel groter probleem. En dan denk ik dus aan zaken als SQL Injection. Waar het mij om gaat, want honestly, het afbranden van WAXTRAPP is het zeker niét, is dat er eindelijk eens een keer wat 'awareness' komt onder ontwikkelaars. Die awareness is onder een grote groep ontwikkelaars al in ruime mate aanwezig, maar het ontbreekt ook een enorme groep ontwikkelaars dus, klaarblijkelijk, nog steeds aan die kennis. En zolang je een hobbyist bent en gewoon leuk websites wilt bouwen zul je mij daar niet over horen.

Bedrijven die geld vragen voor hun producten, en grof geld at that waarschijnlijk, en dan dit soort 'oplossingen' durven opleveren zouden toch eens heel goed naar zichzelf moeten kijken. Steek eens wat geld in bijscholing van personeel in plaats van een dikke auto of een vakantie naar de Bahama's. Reserveer eens wat tijd om op regelmatige basis je ontwikkelaars in een hokje te stoppen en elkaar iets bij te laten brengen; 'speeltuin' projectjes opzetten, spreekbeurtjes (a.k.a. presentaties) houden over ontdekkingen of linkjes op je intranet te zetten naar interessante blogs ;) Déél kennis! En zorg dat, vooral bij primaire zaken als beveiliging, de prioriteit hoog ligt, de testprocedures uitgebreid en doordacht zijn en dat iedereen op de hoogte is van rudimentaire kennis en dat degenen die de beveiliging implementeren helemaal goed weten waar ze mee bezig zijn en niet de hele dag klok-en-klepel lopen spelen.

http://tweakers.net/ext/f/DvZf1m6qx5Ae4YTPZGDBaRj8/full.jpg Bas Groot had waarschijnlijk al een visioen:
"RobIII [red.] ...vertelde verder dat hij waarschijnlijk de komende tijd nog wel meer polemieken over 'foute' bedrijven gaat schrijven. Wordt vast lachen!"
Helaas is het dan weer WAXTRAPP geworden. Sorry Bas!

Ik had dit blogitempje graag anders afgesloten, maar ik kan het niet laten: Told you so! ;)

P.s. Als men deze exploit gaat aanpakken voor de andere sites welke wél nog steeds vatbaar zijn: zorg dan dat het eerst op orde is! Dat scheelt alles twee keer moeten fixen ;)

Dit alles, wederom, op geheel persoonlijke noot

Update 3 dec 1:31
Artikel bijgewerkt met een 'mooiere' demonstratie van de huidige XSS vulnerability bij WAXTRAPP; met dank aan DanielG

TwitterNuJIJeKudosFacebookFriendfeedGoogle BookmarksDiggdel.ici.ousTechnoratiSphinnMixxStumpleUponYahoo! BookmarksMaak je eigen RML op RobIII.nl!

Volgende: Thank you NVidia! 12-'08 Thank you NVidia!
Volgende: RobIII is jaloers 11-'08 RobIII is jaloers

Reacties


Door Tweakers user woekele, dinsdag 2 december 2008 03:33

Typisch.

<vingers in oren>LA LA LA I'm not listening LA LA LA</vingers in oren>

Door Tweakers user RobIII, dinsdag 2 december 2008 03:36

:D :Y En vooral blijven ontkennen niet nonchalant er mee om te gaan ja :P

[Reactie gewijzigd op dinsdag 2 december 2008 04:07]


Door Tweakers user Equator, dinsdag 2 december 2008 08:10

Wederom leuk om te lezen Rob :)

Plaat voor de kop, oogkleppen op en gewoon niet nadenken.. Fantastische instelling ;)

Door Tweakers user MueR, dinsdag 2 december 2008 08:47

Heel jammer dit. Maar ja, als je op vakantie gaat terwijl je site lek is, wordt ie ook niet gefixt natuurlijk.

Door Tweakers user LuckY, dinsdag 2 december 2008 10:26

Tja , wordt het dan niet eens tijd dat de klanten ingelicht worden.
Niet om het bedrijf zwart te maken maar om maatschappelijke belangen.
Je praat hier over overheid sites.
Mochten ze daar bepaalde belangrijke database aan gekoppeld hebben dan kan dat toch ook misbruikt worden met de XSS exploit?
Correct me if im wrong offcourse :+

Door Tweakers user RobIII, dinsdag 2 december 2008 10:37

Heel jammer dit. Maar ja, als je op vakantie gaat terwijl je site lek is, wordt ie ook niet gefixt natuurlijk.
Want dan werkt je personeel niet door :? ;)
Correct me if im wrong offcourse :+
Dan geldt voor jou meteen hetzelfde: lees je even in in de materie ;) Maar inderdaad, dat is dan heel goed mogelijk.

[Reactie gewijzigd op dinsdag 2 december 2008 10:40]


Door Tweakers user DanielG, dinsdag 2 december 2008 10:49

zover ik kan zien, de quote (") en < en > tekens uit zoekteksten worden verwijderd.
De filter zit zo te zien alleen op het output naast "U heeft gezocht op".
Bij de input box (name="zoek") op de pagina wordt namelijk 'gewoon' je ongewijzigde zoekterm weergegeven.

Als je je originele exploit veranderd van

zoek=<script>alert('Boe!');</script>

naar

zoek="><script>alert('Boe!');</script>

wordt het nogsteeds automatisch uitgevoerd.

Door Tweakers user LuckY, dinsdag 2 december 2008 10:55

Dan geldt voor jou meteen hetzelfde: lees je even in in de materie ;) Maar inderdaad, dat is dan heel goed mogelijk.
Als ik het goed begrijpt kan je met de XSS client side informatie weghalen door bijvoorbeeld te laten tonen op een scherm weg te schijven in een db of doorsturen naar een andere server

En door het verkeerd afbreken van de SQL "Symbolen" is er dus ook SQL injection mogelijk die dus informatie uit hun DB kan halen/droppen/dumpen.

Tja , ik neem aan dat dit hopelijk vanuit waxxtrap naar hun klanten is door gecommuniceerd :X

Door Tweakers user RobIII, dinsdag 2 december 2008 11:06

En door het verkeerd afbreken van de SQL "Symbolen" is er dus ook SQL injection mogelijk die dus informatie uit hun DB kan halen/droppen/dumpen.
Die SQL injection is niet bewezen (noch getest door mij); ik uit enkel een donkerbruin vermoeden en vrees voor de mogelijkheid ertoe. Maar dat staat dus los van XSS en is tot op heden nog niet aan de orde.

Door Tweakers user LuckY, dinsdag 2 december 2008 11:19

ok, maar wat ik daar beweert klop dus wel :)

Tja maar als je met SQL injections gaat testen ben je strafbaar toch ?

Door Tweakers user RobIII, dinsdag 2 december 2008 11:30

Tja maar als je met SQL injections gaat testen ben je strafbaar toch ?
Allereerst: ik ben geen 1337 hacker; dus ik ben niet echt thuis in die materie (ik weet gewoon een beetje van webdevelopment :P ). Of je strafbaar bent durf ik te betwijfelen; het lijkt me sterk dat er ergens in de wet staat dat je bepaalde querystrings niet in je browser mag inkloppen. Wél is het goed mogelijk dat er wettelijk zaken zijn geregeld voor wat betreft moedwillig slopen van andermans zaken en dat zou in zo'n geval wel aan de orde zijn. Maar ik vind het niet veel meer dan een kwestie van gewoon goed fatsoen om niet andermans tabellen te droppen, user bestand uit te lezen enz. mocht dat al mogelijk zijn.

Door Tweakers user TeeDee, dinsdag 2 december 2008 12:20

Jammer. Exact zoals je aangeeft: de originele XSS is gevonden en 'gepatched'. Helaas wordt er niet doorgezocht en/of onderzocht naar meerdere andere zaken met betrekking tot XSS. Ik zou tot het gaatje gaan om dit soort zaken opgelost te krijgen, zeker als het mijn boterham betreft.

Door Tweakers user ari, dinsdag 2 december 2008 15:08

Maar ik vind het niet veel meer dan een kwestie van gewoon goed fatsoen om niet andermans tabellen te droppen, user bestand uit te lezen enz. mocht dat al mogelijk zijn.
Niet iedereen is zoals jij. ;)

En als onder andere de overheid klant is (zoals LuckyY schrijft), dan denk ik dat er ook wel mensen zijn die wat minder fatsoen gebruiken dan jij.

Door Tweakers user Blasterxp, dinsdag 2 december 2008 15:33

bijzondere manier om een baan bij Bas te krijgen zeg ik ... maarja :) wie weet lukt het!

Door Tweakers user RobIII, dinsdag 2 december 2008 15:49

bijzondere manier om een baan bij Bas te krijgen zeg ik
Ik heb (samen met een compagnon) een eigen bedrijf en heb totaal geen intresse in eender welke baan dan ook behalve die ik nu heb ;) Ik heb projecten voor het uitkiezen waar ik me (doorgaans :P ) prima en heerlijk in kan uitleven, werktijden, thuiswerkmogelijkheden en andere vrijheden waar geen werkgever aan kan tippen en een leuk belegde boterham. Dan ga ik echt niet bij de zoveelste websitebouwer werken. Die tijd heb ik al lang gehad :Y)

Sterker: onze eigen website is na ruim 3 jaar nog steeds niet gebouwd omdat er teveel andere leuke projecten op stapel liggen :X

[Reactie gewijzigd op woensdag 3 december 2008 00:43]


Door Tweakers user sajoku, dinsdag 2 december 2008 21:19

Leuke blog, erg van genoten :).

Een interessante link:
http://www.iusmentis.com/...iteit/computervredebreuk/
Een technische ingreep: het systeem zo ver krijgen dat het een instructie uitvoert waardoor de toegang wordt verleend tot bepaalde gegevens (het digitale equivalent van het kortsluiten van een elektronisch slot zodat de deur opengaat)
Dit zou je kunnen zien als SQL-Injection. Je kan jezelf toegang verlenen tot de database.
Dat bepaalde querystrings niet strafbaar zijn is opzich logisch omdat die aan verandering onderhevig zijn.

Door Tweakers user joopata, woensdag 3 december 2008 07:36

Te weinig verstand van het onderwerp weerhoud me om inhoudelijk te reageren, maar het leest WEL lekker weg.

Door Tweakers user Alex, woensdag 3 december 2008 10:44

Ik vind het ronduit beschamend. Ik zelf zit in de CMS industry. 'Een van die consultants'. Wij doen er alles aan om de partijen die ons product implementeren bezig zijn met dit soort zaken. Wij draaien op een van de 'langzamere' platformen: ASP.NET. Gelukkig geeft dit platform ons ook al tools 'tegen XSS achtige injecties'. Daarnaast proberen we zoveel mogelijk tools aan te leveren die acties als het simpele 'querystring'-uitlezen gemakkelijker maken.

Waar ik erg bang voor ben bij een partij als WAXTRAPP is dat zij simpelweg een heel licht gewicht data model hebben neergezet. Dit begint al vaak met het zelf aanroepen van het framework in een op maat gemaakte PHP pagina. Verschil met Java en .NET is dat ze allerlei mooie acties uit kunt halen zodat je layouts losely kunt koppelen. Voordeel is dan dat je als vendor volledige controle hebt over de binnenkomende request.

Ik ga nu richting een oplossing, maar hopelijk laat ik ook een weakness zien. Ik vind het in elk geval ronduit beschamend dat een CEO van een partij in mijn industrie zich op zo'n manier uit laat op een blog. Als het voor komt, mea culpa en fixen. Geen beloftes maken en je verschuilen achter browsers. Dat is natuurlijk grote kul!

Door Tweakers user MueR, woensdag 3 december 2008 14:00

Want dan werkt je personeel niet door :? ;)
Schijnbaar niet :p

Door Tweakers user curry684, woensdag 3 december 2008 15:07

Sterker: onze eigen website is na ruim 3 jaar nog steeds niet gebouwd omdat er teveel andere leuke projecten op stapel liggen :X
Dat ken ik :D

@sajoku: inbreken via publiek beschikbare formulieren is nooit strafbaar als deze fout opgezet zijn. Door het publiek zetten van het formulier kom je in het equivalent van iemand uitnodigen in je huis in te breken, terwijl je er naast staat. Computervredebreuk handelt specifiek om het stelen van en toegang krijgen tot gegevens waar je niets te zoeken hebt. Als je via een SQL Injection hack dus ergens binnen komt - oogjes dicht, want kijken en gebruiken van die info is strafbaar. En het slopen van data nog 4~5 keer zwaarder of zo.

Door Bas Groot, woensdag 3 december 2008 17:33

Heren bloggerds,

Ik ben terug van een heerlijke vakantie, buiten in de frisse lucht.

Zoals eerder gezegd: over security doen pas mededelingen achteraf, niet vooraf.
Voor de rest: de meeste uitlatingen zijn nogal aannames.

Eventuele sollicitaties kunnen naar het algemene adres, te vinden op onze website :-)

Door Tweakers user RobIII, woensdag 3 december 2008 17:41

<standaard_antwoord>
Daar hebben we jobs.tweakers.net voor
</standaard_antwoord>

:Y)

[Reactie gewijzigd op woensdag 3 december 2008 17:41]


Door Tweakers user RobIII, donderdag 4 december 2008 00:21

Welkom op de server van WAXTRAPP
De website die u heeft opgevraagd is nu niet bereikbaar.

Onze excuses voor het ongemak.

Welcome to this WAXTRAPP server
The website you requested is not available at this moment.

We apologize for the inconvenience.
Uh oh :X Iemand zitten stoeien? Of is het onderhoud? :D

Door Tweakers user _Teq_, donderdag 4 december 2008 09:23

Ik heb niet genoeg technische kennis in huis om te zeggen of 'het' gefixed is, maar de bovenstaande link uit je text doet niets vreemds meer in ieder geval :)

Heerlijk geschreven verhaaltje dit. Ik kijk uit naar meer!

Door Tweakers user RobIII, donderdag 4 december 2008 10:44

maar de bovenstaande link uit je text doet niets vreemds meer in ieder geval
Maar nog steeds is er een 'filtertje' toegepast i.p.v. dat er gewoon correct ge-escaped wordt :X Ik heb mijn lolletje gehad en ga mijn energie in belangrijker zaken steken ;) :Y)

Overigens zijn alle voorgenoemde andere sites nog steeds lek :Y)

[Reactie gewijzigd op donderdag 4 december 2008 10:46]


Door Bas Groot, donderdag 4 december 2008 16:24

Over XSS: zie mijn eerdere uitspraken.

Over de errorpagina: grote stroomstoring waarbij half GlobalSwitch plat ging, met wat kleine naschokken.

Reageren is niet meer mogelijk