Nederlands hackproject ontdekt kwetsbaarheden in vijf Wordpress-plug-ins

Het Nederlandse hackproject Summer of Pwnage heeft kwetsbaarheden in verschillende Wordpress-plug-ins ontdekt. Het gaat om WooCommerce, Ninja Forms, Icegram, Video Player en Paid Membership Pro. Er zijn inmiddels updates beschikbaar.

Het project heeft verschillende advisories gepubliceerd. Er zijn meerdere kwetsbaarheden gevonden, omdat Wordpress op dit moment het onderwerp is van Summer of Pwnage. De plug-in WooCommerce wordt door miljoenen websites gebruikt, zo stelt ontdekker Han Sahin. De kwetsbaarheid betreft een cross-site scripting-lek, waardoor een aanvaller door middel van een speciaal gegenereerde afbeelding sessietokens en login-gegevens kan stelen. Het lek is verholpen in versie 2.6.3 van de plug-in.

De Ninja Forms-plug-in is in gebruik op ongeveer 600.000 sites. Het lek in deze software betreft eveneens een xss-bug en stelt een aanvaller in staat om kwaadaardige javascript-code uit te laten voeren binnen de applicatie. Een oplossing is aanwezig in versie 2.9.52. Bij de minder populaire Video Player-plug-in gaat het om een sql injection-lek. De overige twee plug-ins zijn eveneens vatbaar voor xss.

Summer of Pwnage vindt gedurende de maand juli plaats in Amsterdam.

Door Sander van Voorst

Nieuwsredacteur

20-07-2016 • 14:42

97 Linkedin

Reacties (97)

97
82
54
4
0
14
Wijzig sortering
Wordpress en zijn plugins zitten dan ook mega slecht in elkaar. Het is een platform voor en door amateurs. Lekken in Wordpress en zeker zijn plugins lijken mij dan ook niet zo schokkend. Schokkend is dat Wordpress zoveel gebruikt wordt. Sorry, dit moest ik even kwijt.
Je bekijkt Wordpress overduidelijk uitsluitend vanuit programmeurs-perspectief. En in dat opzicht zit er iets in wat je zegt: de code is niet modern, niet heel consistent en lang niet overal optimaal qua efficiëntie.

Maar: er is veel en veel meer aan een CMS dan alleen de programmatuur. Wordpress heeft een enorme community waar veel kennis, informatie, plugins en thema's uit voortkomen. Wordpress is gratis, open source, wordt regelmatig bijgewerkt, heeft weinig veiligheidsproblemen in verhouding tot de populariteit, het contentbeheer werkt mooi en eenvoudig, en het systeem is enorm goed uit te breiden. Ook veel professionele sites draaien erop, want met een klein aantal goede plugins, een eigen thema en de nodige tweaks en optimalisaties is het een zeer bruikbaar platform voor het bijhouden van een website / app.

Voor een volleerd programmeur die OOP en perfect gestructureerde code verwacht is het een rommeltje. Voor wie Wordpress gewend is, is het grotendeels prima, en is er eigenlijk geen enkel ander CMS dat in de buurt komt qua community / kennisdeling / de andere factoren die ik hierboven noemde. De gekke naamgeving van functies, en bijv het eigen systeem van filters en actions, neem ik voor lief. Ik heb er zelfs van leren houden, met wratten en al :)

[Reactie gewijzigd door geert1 op 20 juli 2016 15:55]

Natuurlijk bekijk ik het vanuit een ontwikkelaars perspectief, wat interesseert het een gebruiker nou hoe krakkemikkig het in elkaar steekt, als het maar werkt.

Maar voor performance en security is architectuur en programmering heel belangrijk. Van wat ik lees lijkt er vrijwel geen gedachte achter de programmering van WordPress te zitten, behalve misschien 'als het maar werkt.'
Da's veel te sterk uitgedrukt. Wordpress is niet zozeer krakkemikkig. Met de beveiliging is het redelijk goed gesteld, kijkend naar het beperkte aantal problemen terwijl het platform gebruikt wordt door 25% van het internet en dus een flink doelwit is. De performance is redelijk (stukje trager dan sommige andere cms-en), maar sterke caching-plugins maken 'm razendsnel. De code is rommelig in de zin dat het een combi is van oud en nieuw (vanwege backwards compatibility is er nooit een complete herstart geweest), dat de naamgeving van functies niet altijd lekker consistent is, dat het deels object-georiënteerd is en deels procedureel, en dat WP een eigen event-driven structuur heeft die niet overeenkomt met algemene code-principes en best practices.

Een belangrijke reden hiervoor, naast de genoemde backwards compatibility, is dat Wordpress geschreven is om ook zelf geschoolde programmeurs relatief eenvoudig te laten inhaken. Class-based code is lastiger om te leren dan het event-driven patroon met hooks, actions en filters. Het maken van plugins en thema's is hierdoor ook echt eenvoudig en toch krachtig. Wie object-georiënteerd wil werken, zal Wordpress moeten vermijden. Maar wie de logica van Wordpress accepteert, werkt er met plezier mee (met hier een daar een frons).

[Reactie gewijzigd door geert1 op 20 juli 2016 23:22]

Het ligt eraan wat je de definitie van "Wordpress" vind. Wordpress zelf is niet het probleem (nouja, je zou alleen kunnen stellen dat het out-of-the-box langzaam is).

De grootste problemen met WordPress zijn met de modules en de themes, die in (laat ik het voorzichtig uitdrukken) "wisselende kwaliteit" beschikbaar zijn. En -laten we eerlijk zijn- niemand gebruikt WordPress zonder allerlei extensies, dus ik vind dit een integraal onderdeel van het totale WordPress plaatje.

Als je dit meeneemt en op basis van het totale plaatje WordPress beoordeelt, denk ik dat het woord "krakkemikkig" best goed past. Als je alleen naar WordPress als CMS kijkt, is er weinig aan de hand.
Gebrekkige plugins en thema's zijn zeker een probleem, maar eigenlijk alleen voor de niet-professionele gebruikers van Wordpress. Kenners weten exact welke plugins goed zijn, gebruiken maar een klein aantal plugins om het aantal points of failure laag te houden, en thema's ontwikkelen zij zelf. Er zijn hele mooie plugins beschikbaar die goed aansluiten op Wordpress qua beheerervaring en code-conventies; sommige zitten zelfs beter in elkaar dan Wordpress zelf. Wanneer er voor een bepaald doel geen echt goede plugin bestaat, dan schrijven professionals die ook gewoon zelf.

Amateurs die met minimale tijd en middelen zelf een site willen neerzetten, die kiezen waarschijnlijk inderdaad vaak te veel, en de verkeerde, plugins, gecombineerd met een gratis of goedkoop thema (veel daarvan zijn krakkemikkig, hoewel ook niet allemaal). Maar ja, die groep zou hoe dan ook geen topresultaat kunnen neerzetten, met of zonder Wordpress.

Oftewel: de kwaliteit van het resultaat hangt af van de kennis en ervaring van degene die de site bouwt. En dat geldt voor andere systemen net zo.

Ik zou persoonlijk wel een voorstander zijn van veel strengere controle van de plugin-database. Een aanzienlijk deel daarvan zou geweerd mogen worden. Maar ja, dat zou meer mankracht kosten dan het WP-team heeft. Ontwikkelaars zullen dus zelf het kaf van het koren moeten blijven scheiden.

[Reactie gewijzigd door geert1 op 21 juli 2016 15:03]

Je bekijkt Wordpress overduidelijk uitsluitend vanuit programmeurs-perspectief. En in dat opzicht zit er iets in wat je zegt: de code is niet modern, niet heel consistent en lang niet overal optimaal qua efficiëntie.
Dat is een understatement. De code hangt met plakband aan elkaar, is traag (de enige manier om er nog iets van te maken is caching toevoegen - wat ook weer ellende geeft), updates van modules is alsof je Russisch roulette speelt, error logging is zo goed als non-existent, ... ik kan nog even doorgaan.
Maar: er is veel en veel meer aan een CMS dan alleen de programmatuur. [...]
Klopt. Helaas is het zo dat de snelste weg naar een website nog steeds begint met "installeer Wordpress". Wordpress is het enige CMS dat zo veel plugins en thema's heeft. Dat is volgens mij de enige keuze dat zo veel mensen kiezen ervoor.
Ik heb er zelfs van leren houden, met wratten en al :)
Weet je wat het is met wratten... er zijn gewoon plaatsen waar ik liever geen wratten hebt.
Je hebt gelijk. Ik bekijk het te sterk vanuit programmeurs perspectief en wat je zegt is dan ook waar.
Ja, veel professionele programmeurs zouden het beter kunnen. Zelfs de programmeurs van Wordpress zouden het beter doen indien ze nu zouden beginnen.....
Kan iemand nu eens een concreet voorbeeld geven van wat er nu zo slecht geprogrammeerd is aan Wordpress? Dat iemand een brakke plugin kan schrijven, dat snap ik, maar geef eens een passage code van Wordpress zelf dat dan slecht in elkaar zit.

Mijn ervaringen met Wordpress zijn helemaal niet slecht en Wordpress vangt al veel security-issues (sanitizing, etc.) af met standaardfunctionaliteit. Het gaat pas mis als thema- en pluginbouwers eigen functies gaan schrijven die geen gebruik maken van "standaard" Wordpress functies.

En vanwege de omvang zal in Wordpress vast niet alles even efficiënt geprogrammeerd zijn, maar ik vind "slecht in elkaar" wat te negatief.
Het is ook een kwestie van zo min mogelijk plug ins gebruiken, updates zo snel mogelijk uitvoeren.
En vooral uitkijken welke plug ins je gebruikt.

WP is misschien niet ideaal, maar voor mij is het een geschenk.
Als niet techneut of ICT'er is het gebruiksvriendelijk, aanpasbaar en goedkoop, want ik kan het zelf onderhouden met een minimum aan webkennis!
Tuurlijk, als beginner hoef je je niets aan te trekken van veiligheid/stabiliteit. Maar ga je eenmaal werken voor anderen of zelf groot worden, dan hoop ik allesinds dat je er serieus rekening mee houdt. Denk aan de discussies over verantwoordelijkheden bij datalekken, identiteitsdiefstal, internetfraude,.. Wordpress heeft ook grote 'klanten'. Wil je dat zij hun websites maken met dezelfde gedachte in het achterhoofd?

"Ik kan het zelf onderhouden met een minimum aan kennis" vind ik dan ook enkel gepast op amateurniveau.

http://www.wpbeginner.com...that-are-using-wordpress/
Ik ben dan ook amateur en mijn website is enkel voor privégebruik.
Ik sla geen e-mailadressen op, geen klantgegevens, verkoop niets, ...

Daarbij, een custom website laten bouwen door een internetbedrijfje kost veel geld en is ook geen garantie voor een veilige(r) website.
En wat als het bedrijfje erme ophoudt?

En grote klanten zullen hun websites wel maken met andere gedachten en veiligheden dan mijn site.

Op het bedrijf waar ik werk, wordt de website door eigen mensen gebouwd en onderhouden. Daar werken 6 mensen fulltime voor. Dat kan je niet vergelijken met mijn blogje in WP
Je zou ook iets kunnen maken wat net zo gebruiksvriendelijk is en wel goed in elkaar zit. Die moeite hebben ze niet genomen.
Nu laat ik mezelf graag overrulen, maar in mijn opinie is Wordpress in zijn basis (ie. zonder plugins e.d.) een van de betere systemen, die je heel snel kan uitrollen.
In de algemene code wordt er nergens meer variabelen in SQL geplaatst en dat soort dingetjes. Iets wat bij Joomla! bijvoorbeeld hoogstwaarschijnlijk nog steeds niet structureel opgelost is.

Het is echter wel een regel voor mezelf om altijd -alle- gebruikte plugins regel voor regel door te nemen, oftewel een kleine code review. Dit geldt ook voor thema's.
In de custom code van anderen kan je altijd kwetsbaarheden vinden en veel mensen installeren plugins zonder de technische know-how. (hiervoor is het systeem in principe ook zo gemaakt).
Daarbij vinden de meeste plugin/thema bouwers zichzelf heel erg tof, zodat ze vormen van spyware in je wordpress site achterlaten.

Daarbij benoem ik Wordpress als redelijk procedureel programmeren qua framework. Je kan prima bepaalde architecturen doorvoeren, maar die moet je dan zelf uitbouwen.
(zat er aan te denken om gewoon een algemene Wordpress/MVC schil te maken, maar nog niet de animo voor)

TLDR;
Het is geen super ontworpen systeem qua architectuur, maar biedt een relatief veilige basis.
De snelheid om uit te rollen en het gebruiksgemak maken het , in mijn ogen, toch een toppertje. (mensen snappen gewoon hoe het werkt)
- Het kan een veiligheid risico hebben voor de niet-technisch onderlegde website beheerders
Kan iemand nu eens een concreet voorbeeld geven van wat er nu zo slecht geprogrammeerd is aan Wordpress?
Een sliert voorbeelden.
Hé nu niet PHP programmeurs over één kam scheren. Het kan ook goed.

Twee referenties die je in ieder geval gerust zullen stellen:
http://www.php-fig.org
https://laravel.com
Anoniem: 145867
@HitDyl20 juli 2016 19:13
Ik pak liever een taal die op beide terreinen gelijk zijn. server en client. Hopelijk komt er nog een populaire CMS die niet gebaseerd is op PHP.
Goed, dat is informatie van bijna 9 jaar geleden.... Heb je niet iets recenters, of beter nog: kun je zelf aangeven waarom WP zo slecht zou zijn?
De achterliggende code is niet van deze tijd het is 'spaghetti code'. Geen gebruik van OOP of Namespaces. Het houdt zich absoluut niet aan standaarden http://www.php-fig.org
Ik begrijp je punt, maar het inhuren van een professional is niet altijd economisch verantwoord voor de huis, tuin en keuken hobbyist. Om nou honderden euro's uit te gaan geven aan een pro designer, waarvan je in veel gevallen je maar moet afvragen wat hij/zij ervan bakt... Het is voor de 'newbie' lastig om iets degelijks te maken zonder Wordpress achtige oplossingen.
Natuurlijk begrijp ik dat. Zou het niet mooi zijn als Wordpress gewoon herschreven of opnieuw uitgevonden werd.
Ik ben met mijn collega's een tijdje terug bij A Day Of Rest in Londen geweest, over de implementatie van de Rest API in WordPress. Daar waren veel core-developers van WordPress aanwezig en ze zijn er volledig van op de hoogte dat 'hun' programma zo te boek staat, en ze ontkennen het ook niet. Ze hebben echter wel een pro-actieve community die continu bezig is om dit te verbeteren. Alle pijnpunten (zeg maar 'groeipijnen') zijn bekend en wordt aan gewerkt.

Helemaal from-scratch beginnen is ronduit zonde van alles wat er al staat, en ook lang niet zonder risico (zie de release van Magento2.0 t.o.v. jarenlange doorlopende development van 1.x).
Goed om te horen. Het zal een aardige klus zijn om het volledig PSR compliant te maken. Maar als ze het lukt is dat een absolute prestatie.
Dat hebben ze gedaan, en daar is Ghost uit gekomen. Heeft nog een lange weg te gaan, maar als wat meer mensen het gaan gebruiken kan het zich hopelijk snel meten met wordpress!
Ghost is meer een nieuw product dan een restart van wordpress. Prima applicatie maar niet geschikt voor veel hostingplatformen omdat het niet in PHP is.

Wordpress is gewoon een ramp en wordt gebruikt voor doeleinden waar het in eerste instantie niet voor geschreven was en dat is te merken.

[Reactie gewijzigd door mrdemc op 20 juli 2016 15:29]

Ghost is niet een "reboot" van WordPress, het is opgericht door ex-werknemers die terug willen naar de core van een bloggingplatform, waar WordPress langzaam evolueert naar volwaardig CMS (met alle gevolgen van dien, ja)
Natuurlijk begrijp ik dat. Zou het niet mooi zijn als Wordpress gewoon herschreven of opnieuw uitgevonden werd.
Ja, dat zou het zeker, maar voornaamste nadeel waar WP aan vastzit is de backwards compatibility.

Maar als je daar iets leuks op weet, WordPress is opensource, dus je kunt altijd code commiten voor WP core.
een nieuwe branch waar de bloat van de backward compatibility is uitgehaald zou best een mooie stap zijn.
Je kan vrijwel nooit alles backwards compatible houden en Wordpress is relatief modern. Tegenwoordig vind ik dat de meeste mensen het erger laten lijken, dan het is.

Beetje goede hosting en je kan per definitie niet heel veel doen, al zit er een exploit in.
De grootste en beste bureaus maken templates voor Wordpress, ontwikkelen plugins, etc. Nee hoor, echt voor en door amateurs.

Wat adviseer jij?
Sorry ik scheer inderdaad nu alle plugins over één kam. Frustratie dingetje denk ik. Maar ik kan me dan ook moeilijk voorstellen dat er echt goede plugins zijn als de basis al niet goed is. Bij welk bureau het dan ook vandaan komt. Maar ik kan er natuurlijk naast zitten.
Als ik naar de lijst kijk staat bij alle 5 genoemde plug-ins dat ze al gefixed zijn.
Is toch een flinke prestaties voor en door amateurs, zekers als je kijkt naar problemen die professionele software huizen (Adobe enz) nog steeds niet opgelost hebben.
Ik vind de mensen die achter WP zitten snel en goed reageren op problemen.
Antwoord dan eens op de vraag wat jij adviseert... Ben oprecht benieuwd! Zie hier enkel en alleen maar snauwen richting WP, maar geen goede alternatieven die hetzelfde kunnen met dezelfde Resources.

Wat betreft die plugins, Oef! Dat zijn niet bepaald de minste....
Heb ik al twee maal gedaan.
Met WOrdpress zelf is niet super veel mis. Maar zoals met elke grotere CMS is er kans op een gat ergens. Gelukkig wordt het snel gepatched als er iets gevonden is. Jou eigen stukje programmatuur zal eerder veilig zijn door "Security by obscurity" dan de code kwaliteit hoor.

Onderschat de Wordpress community niet.
Onderschat de Wordpress community niet.
Overschat het ook niet. Zelfs binnen de WordPress community wordt toegegeven dat de code en API interfaces van WordPress zelf een clusterfuck van legacy code en inconsistenties zijn. Lees ook bijvoorbeeld dit verhaal.

Overigens zal WordPress niet snel weggaan. Daarvoor is het te populair.

Waar WordPress probeert alle markten te voorzien komen er ook steeds meer alternatieven die zich meer specialiseren (bijvoorbeeld Ghost voor blogging). We leven in interessante tijden. ;)
Zo is er over elke CMS wel wat te zeggen en elk stukje software. Hetzelfde geldt voor windows zelf.

Ik zal niet zeggen dat het perfect is. Maar het wordt aardig goed bijgewerkt. Lekken worden vrij snel gedicht en er zijn goede mogelijkheden. Ik bouw vrij lichte maar toch zeer complete sites in Wordpress en vrijwel geen enkele CMS die door kleine teams gebruikt kunnen worden om sites te bouwen met een vrij grote scope. Zelf een duurzame en veilige CMS bouwen is een zeer kostbaar project en niet te doen voor middelgrote bedrijven waarbij de core business niet IT is.

[Reactie gewijzigd door Sn0wblind op 20 juli 2016 18:07]

Zo te zien weet jij totaal niet waar je het over hebt. WordPress voor en door amateurs? Heb je enig idee hoeveel professionele (grote) bedrijven WordPress gebruiken? En hoeveel professionele webdesignbureaus WordPress websites aanbieden?
Allemaal amateurs zeker?
Je zegt het correct: webdesignbureaus.

En dus geen security experts per se. Dat is denk ik het probleem. Ga je namelijk kijken naar de dev kant dan is het inderdaad allemaal design driven development. Het moet er goed uitzien en makkelijk werken. Security is alleen belangrijk als je een grote webshop hebt (bol.com, wehkamp). Tenminste. Dat is hoe het gaat. Niet hoe het zou moeten gaan. Security is te allen tijde belangrijk, maar als klein bedrijfje is de kans vrij klein dat je er mee te maken krijgt.

Ik zie echter ook grotere bedrijven dikke fouten maken in de beveiliging van login databases. En niet nader te noemen muziekinstrumentenwinkel uit duitsland slaat passwords op in plain text 8)7
Ik denk dat men doelt op het amateur niveau van de codebase, die dramatisch is op gebied van zowel security als performance.
Iedereen wil tegenwoordig nu eenmaal een website, eventueel met een store en andere fancy features. Het ontwikkelen van de site mag niet teveel kosten en moet makkelijk door de eigenaar zelf te onderhouden zijn. Het is dus niet zo gek dat CMS systemen zoals Wordpress, Joomla en Drupal mateloos populair zijn. Dit zijn echter allemaal open source projecten waar door veel vrijwilligers aan gewerkt wordt en daar zitten vast ook wel mensen tussen die eigenlijk helemaal niet zo goed weten waar ze mee bezig zijn, in ieder geval niet op het gebied van security.

Laten we het even als een gegeven nemen dat websites anno nu met een (open source) CMS worden gebouwd, welke geniet dan jouw voorkeur? Duidelijk niet Wordpress in ieder geval.
Opensource is geen reden voor slechte code. Het heeft waarschijnlijk meer met de leeftijd te maken. Waarschijnlijk zou ik iets aanraden dat op Laravel gebaseerd is. October CMS bijvoorbeeld: https://octobercms.com
Wordpress krijgt regelmatig updates, worden zelfs gepushed als je instellingen dit toelaten, ik vind wordpress een heerlijk OS product. De plugins zijn door jan en alleman te maken, en dus bijgevolg lek als een zeef. Maar claimen dat WP lek is, is gewoon kritiek geven op de grootste naam IMHO, als zovaak zullen bedrijven anders beweren, en zullen hipsters alle forks als goud aanprijzen, maar feit is, gelijk waar goeie hackers kijken ze vinden massas kwetsbaarheden.
Tis gratis als je hosting neemt en makelijk dus wat wil je nog meer
Tis gratis als je hosting neemt en makelijk dus wat wil je nog meer
Dat het veilig is?

(Echt. Het wordt eens tijd dat er wetgeving komt omtrent aansprakelijkheid van websitebeheerders voor schade opgelopen door het bezoeken van een gecompromiteerde site. Dan zal het snel afgelopen zijn met broddelcode.)

[Reactie gewijzigd door R4gnax op 21 juli 2016 09:25]

Gooi het er maar uit ;)

Wat ik ook niet begrijp is dat het sinds het zo populair is, nog steeds geen enige vorm van structuur heeft. Je zou toch zeggen dat ze aardig wat geld kunnen verdienen en een paar goede programmeurs op kunnen zetten.
Het is schokkend dat Wordpress zoveel wordt gebruikt terwijl het volgens jou zo slecht in elkaar zit en door amateurs wordt gebruikt.

Wellicht zou je je mening moeten herzien.
Waarom?

Edit:
Jaja gedownmod; maar waarom zou iets dat veel wordt gebruikt automatisch niet amateuristisch kunnen zijn?

[Reactie gewijzigd door HitDyl op 20 juli 2016 15:46]

ach ja, wat wil je van web(service) development. De meeste overleven de lente niet eens, en diegene die dat wel doen komen dan voor problemen te staan die ze vreemd zijn. Voor mooie code of cutting edge technologie moet je je niet met web bezig houden.
WordPress is niet mijn favoriete systeem, ik heb ondertussen een flink aantal klanten tot grote tevredenheid overgezet naar het modernere en krachtiger https://Bolt.cm

Maar het is niet te ontkennen dat in de afgelopen jaren WordPress zo'n fenomeen geworden dat mensen vaak niet beter weten. En we moeten niet vergeten dat er in de tijd vóór WP eigenlijk niets was wat eraan kon tippen.
Anoniem: 795767
@HitDyl20 juli 2016 16:07
Kun je een voorbeeld geven van een beveiligingsissue die in core bestaat?
Nu ga ik er serieus op in.

Ik weiger XSS 'exploits' als 'exploit' te erkennen. Het is een front-end slordigheidje.

Meermalig meldingen gekregen van een 'hacker!', die dan simpelweg een screenshotje had gemaakt van zijn zoekresultaat met daarin... oooh.. een plaatje met doodshoofd.
Hierbij vermeld ik dat deze projecten heb overgenomen en er nooit tijd was om pro-actief slordigheidjes op te lossen.

Het is sowieso niet-werkende code, maar intentie is duidelijk :p
Ik weiger XSS 'exploits' als 'exploit' te erkennen. Het is een front-end slordigheidje.
XSS is net zo'n 'slordigheidje' als dat SQL injection is. In de basis is het precies dezelfde fout die gemaakt wordt: namelijk de input van een gebruiker wordt klakkeloos gebruikt zonder deze onschadelijk te maken. Dat er daarbij wel een verschil in impact zit ben ik met je eens, maar XSS kan net zo goed een ernstig tot kritieke impact hebben.

Eén goedgeplaatst linkje naar een administrator, die voor het gemak zijn wachtwoord in de browser bewaard, is voldoende om administratorrechten te krijgen. Of een admin die niet uitlogt waarvan je zijn sessie kan overnemen.
Ik ben het er zeker mee eens, dat XSS per definitie opgelost moet worden.
'k Denk alleen terug aan de tijd dat een directeur van een of andere grote toko heel errug boos werd, want de website was gehackt! (oftewel, het doodshoofdje in de zoekresultaten).

Dat al hun core business processen zo lek als een mandje waren/zijn, boeit hem geen reet. Maar een 15 jarige, die een doodshoofd plaatst.. Oh jee.
Daarna werd een marketeer projectleider en faalde elk nieuw project.
Het is een front-end slordigheidje.
Dat maakt het veiligheidsrisico er niet minder ('erg') op. Met zo'n redenatie zijn alle security leaks 'een slordigheidje' namelijk. Ik heb echt het idee dat je security ernstig onderschat. Het voorbeeld wat je noemt kan iedereen inderdaad met een beetje Photoshoppen, daar kun je makkelijk doorheen prikken, totdat een dergelijk lek een keer wel voor problemen zorgt. ;)
Het maakt het veiligheidsrisico zeker minder. Gezien je er verder geen gegevens mee los kan futselen en wat dan ook.
Ik onderschat security niet, ik maak onderscheid tussen prioriteit/impact. (iets wat management/directie doorgaans niet kan en puur vanuit emotie stuurt)

Even los van het feit, dat je dit soort exploits niet hoort te maken, als je een ervaren developer bent. (beetje eerste jaars / junior foutjes zijn dit)

Exploits ala een algemene ingang in een media library, waardoor je bijvoorbeeld database credentials kan achterhalen. Die zijn wat ernstiger.
Meh. Ik weiger mee te doen aan dingen, waar 'pwn' serieus in gebruikt wordt.
Doet me iets teveel denken aan alle kinderen online, die constant (nieuwe) spelers verbaal lopen aan te vallen.

Dat soort titels helpen niet de evenementen serieus genomen te laten worden. Daarbij heb ik de tijd niet.
Anoniem: 795775
@WDMeaun20 juli 2016 18:01
Zolang je maar wel de lekken blijft patchen die tijdens dat soort events gevonden worden ;-)

Niet serieus?:

http://www.securityweek.c...-earn-460000-21-new-flaws
Anoniem: 795775
20 juli 2016 15:58
Ik heb aardig wat WordPress Core code bekenen tijdens de Summer of Pwnage en qua beveiliging niet veel op aan te merken... so far. Voor wie daar anders over denkt, stuur me svp even een linkje naar de WP CORE code die je onveilig vindt.

Plugins is een totaal ander verhaald inderdaad. Zowel goed als slecht en alles daartussen in.

En uiteindelijk bevat iedere grote code base wel sec. issues, ongetwijfeld ook de huidige WP Core...
Misschien moeten de WP devs even kijken naar het plug-in systeem. Het feit dat plug-ins onveilig kunnen zijn is ook een WP Core probleem.
Anoniem: 668692
@Bonobo20 juli 2016 16:49
Als plugings geen core access hebben, kan het WP weer minder flexibel maken en dus voor Dev's minder interessant.

Het is geen consumenten browsertje waarbij het wenselijk is zo veel mogelijk dicht te timmeren.
Even snel de WordPress code bekeken;
- Ik mis op een aantal punten wel input validaties, escapes/checks/typecasting/etc.
- Er is geen centraal punt in de code waar alle input data langs komt (dat zou validatie ook een stuk eenvoudiger maken)
- Ook is er geen database layer / ORM laag en staan op diverse plaatsen in de code SQL queries.

https://github.com/WordPr...utf8=%E2%9C%93&q=_REQUEST ($_REQUEST/GET/POST/COOKIE)

https://github.com/WordPr...p-includes/post.php#L4563
$sort_column = ! empty( $orderby_array ) ? implode( ',', $orderby_array ) : "$wpdb->posts.post_title";
$query .= " ORDER BY " . $sort_column . " " . $sort_order ;
Als ik dit als programmeur lees dan denk ik: ORDER BY <hier een titel met SQL injection> ASC.

https://github.com/WordPr...-admin/admin-post.php#L31
$action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
do_action( "admin_post_{$action}" );
Ook dit vind ik ook twijfelachtige code. Zonder whitelist kun je elke admin_post_XXXX action aanroepen.

[Reactie gewijzigd door basvd op 20 juli 2016 17:35]

Ik gebruik zelf ook wordpress en zo min mogelijk plugins en alle themes die ik niet nodig heb gooi ik er ook af. Het nadeel is alleen wel van plugin database van Wordpress is dat deze volgens mij nergens op gescand worden.
Anoniem: 420461
@tom.cx20 juli 2016 15:02
Je kunt ook niet scannen op programmeerfouten, en ik denk niet dat ze elke versie van elke plugin handmatig willen analyseren. ;)
Je kunt met bepaalde programmeertalen geheugen-lekken enzo automatisch scannen. Er staat er zelf een op MSDN. Je kunt voor bepaalde dingen dus wel automatisch controleren, ook al is dit niet perfect.
Static code analysis heet dat, zit zelfs ingebouwd in Visual Studio. Of je daar beveiligingslekken mee gaat vinden is wel de vraag, het is namelijk meer ontworpen om veelvoorkomende fouten te ontdekken. Bijvoorbeeld een object dat aangemaakt word maar nooit opgeschoond.
Je kunt ook niet scannen op programmeerfouten, en ik denk niet dat ze elke versie van elke plugin handmatig willen analyseren. ;)
Er zijn partijen als Sucuri die dat wel doen, maar die zullen ook echt niet iedere release van iedere plugin onder ogen krijgen.
Zeker wel.. heb het nog gedaan voor mijn Master thesis :)
Interessant; Kirby (een zeer veilig robuust cms) heeft exact dezelfde bug...

https://cdn-standard.disc...08e1ee61fef8b184c1214.png

Ik heb het al gemeld bij ze.
Ha cool, nice one. Je hebt de payload-exif van Han gebruikt zie ik.. ;-)

https://www.sumofpwn.nl/a...mage_metadata__exif_.html
Ja, ik heb exact hun methode gebruikt en het blijkt dat dus meer CMS'en hier het schip in gaan... CMS-agnostische-malware... heel hip.
Hoeveel plugins zijn er gecontroleerd? Want als er in 5 plugins een lek is gevonden op de honderden, zo niet duizenden plugins, dan valt het volgens mij wel heel erg mee.

En voor hen die Wordpress voor amateurs vinden, moeten maar eens kijken wie er allemaal Wordpress gebruikt. Grote organisaties die grif betalen voor deze technologie.

Wordpress is redelijk goed te beveiligen met additionele plugins. HideMyWP is een hele goede plugin en kost slechts enkele tientjes. Deze past de mappenstructuur van WP aan en verwijdert verwijzingen naar WP. Hierdoor is het voor hackers en bots niet te achterhalen op welke architectuur een website draait.
capital_P_dangit();
Het is wel wat kort door de bocht om nu te roepen dat Wordpress per definitie onveilig is...

Het gaat hier om plug-ins, extensies - en niet om (de core van) Wordpress zelf.

Daarnaast is bv. de Woocommerce-bug exact hetzelfde als de bug die Apple laatst trof (EXIF data die wordt uitgevoerd).

Om dan meteen te roepen dat Apple / OSX / iOS totaal onveilig is, zal ook niemand durven :)

Hieronder een voorbeeldje van de EXIF-meta-data die in een foto kan zitten en geparsed wordt / werd door Woocommerce;
Image description : <a href="javascript&#58alert(document.cookie);">...</a>
Resolution unit : Centimeter
YCbCr Positioning : centered (1)
Zoals je ziet, is het gewoon een simpele fout in Woocommerce; even alle entiteiten checken / omzetten voor je er iets mee doet - en je bent veilig... nuance is soms erg eenvoudig.
Waarom is volgens jou 'alle php' onveilig?
Ondanks dat ik een negatieve vote kreeg, was ik best serieus en vind ik dat je een goede vraag stelt.

In de web frameworks zoals ASP.Net (*) zijn dit soort dingen vrijwel onmogelijk, simpelweg omdat het raamwerk al allerlei logica heeft om dingen als sql injection, cross side scripting, ellende als gevolg van escaping, etc, etc automatisch wordt opgelost. Natuurlijk kan je ook ellende krijgen zoals hier (en zijn er ook dingen waar je op moet letten), maar je moet er actief moeite voor doen. (*Note: er is best een hoop mis met ASP.Net, maar dit soort dingen zijn echt heel veel beter geregeld)

PHP is daarin precies omgekeerd. Je krijgt default mogelijk ellende en moet actief de juiste dingen doen om dat te voorkomen. Natuurlijk is het allemaal geen garantie, maar het maakt de kans op ellende wel aanzienlijk groter.

Om die reden exposed Wordpress ook allerlei functies, die als een soort van 'library' dienen en een deel van deze problemen oplossen. Een deel van de modules gebruikt deze, een deel niet... nergens wordt een goede manier van werken afgedwongen.

Combineer dat met het feit dat de meeste programmeurs echt niet weten welke risico's ze allemaal lopen met bepaalde code - en je komt vanzelf op mijn conclusie.

[Reactie gewijzigd door atlaste op 21 juli 2016 08:29]

Je vergelijkt hier een programmeertaal met een programmeer framework. Appels en peren.

Indien je ASP zonder .NET zou gebruiken dan zou je het kunnen vergelijken met PHP
Indien je PHP met framework zou gebruiken dan zou je het kunnen vergelijken met ASP.Net.
Nee, daarin zit precies de crux: Je kan ASP niet gebruiken zonder .NET. There's no such thing.

De vergelijking dat .NET zonder ASP hetzelfde is als PHP gaat volgens mij ook niet op: op het moment dat het primaire doel is van PHP om websites te renderen (lees: zoals iedereen doet), vind ik de vergelijking prima valide. Daar worden libraries voor gebruikt uiteraard; niemand gaat zelf een MySQL connector maken om een praktisch voorbeeld te noemen.

Vervolgens moet je m.i. kijken naar hoe mensen het gebruiken en kunnen gebruiken. Nogmaals, je kan er altijd omheen werken (je kan in ASP.NET ook een eigen HTTP handler schrijven en direct HTML emitten) -- maar niemand doet het, omdat goed gebruik min of meer wordt afgedwongen. Je kan er zelfs ook met heel veel truuks een console applicatie in schrijven... het is alleen complete waanzin.

Het zou m.i. accurater zijn om te zeggen dat ik: groene appels en rotte appels vergelijk. Van beiden kan je appelmoes maken en met voldoende smaakstoffen proef je het verschil vast niet als consument. Zelf eet ik echter een stuk liever appelmoes van groene appels.
In elke programmeertaal en framework kun je rotte applicaties schrijven.
In elke programmeertaal en framework kun je goede applicaties schrijven
Het hangt van de kunde en kennis van de programmeur af of de applicaties goed of rot is.

Je opmerking m.b.t. rotte appels is m.i. een troll-opmerking
Het hangt van de kunde en kennis van de programmeur af of de applicaties goed of rot is.
Ik dacht dat ik duidelijk ben geweest, maar blijkbaar niet...

Iedereen maakt fouten, ook de beste programmeur. In het geval van een goed raamwerk, is de kans op fouten klein. In het geval van een slecht raamwerk, is de kans op fouten groot. Zo je wilt vind ik PHP een slecht raamwerk, waar ik volgens mij goede argumenten voor heb.

Als je in een type safe language een variable gebruikt van het verkeerde type, kan je proberen wat je wilt, maar zal je nooit een website krijgen. Analoog daaraan zal je in Java en C# nooit een buffer overflow krijgen of een stuk geheugen wat je meerdere keren dealloceert (maw: issues in C/C++), omdat het framework je daar tegen beschermd.

Als je een ASP.Net applicatie maakt, kan je HTML content in een label gooien wat je wilt, met post data smijten naar de server, etc, etc. -- maar je zal daarmee nooit een security issue introduceren. En ook dingen als SQL injection zijn zo goed als onmogelijk; daar moet je echt code voor gaan schrijven (lees: je best voor doen).

Het gaat niet om dat het niet mogelijk is, het gaat erom dat je de (goede/slechte) programmeur beschermt tegen het maken van fouten. Want iedereen maakt weleens fouten. Daarin zit de crux.
Je opmerking m.b.t. rotte appels is m.i. een troll-opmerking
Welnee, ik maak gewoon de vergelijking kloppend, ik heb nergens iemand persoonlijk aangevallen imho.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee