Hoofdcategorieën
Device Settings

Bug in Twitter maakt plaatsen javascript mogelijk - update

Door Joost Schellevis, dinsdag 21 september 2010 14:20, views: 41.020

De webversie van Twitter kampt met een lek waardoor gebruikers misbruik kunnen maken van het onMouseOver-event. Speciaal geprepareerde tweets kunnen ervoor zorgen dat javascript automatisch wordt uitgevoerd bij een mouse-over.

Het is op het moment van schrijven nog niet bekend hoe groot het probleem is en in hoeverre er misbruik van wordt gemaakt. Er zijn wel gevallen bekend van Twitter-gebruikers die ongewild automatisch berichten plaatsten nadat ze met hun muis over een andere Twitter-bericht gingen, dankzij javascript-code die zou zijn uitgevoerd. Ook zou Sarah Brown, de vrouw van de voormalige Britse premier Gordon Brown, haar volgers per abuis hebben doorgestuurd naar een Japanse pornosite.

Het lek doet zich voor zover bekend alleen voor in de webversie; wie een applicatie zoals TweetDeck of DestroyTwitter gebruikt valt buiten schot. Wel zijn browser-add-ons mogelijk ook vatbaar: in ieder geval PowerTwitter voor Firefox heeft hier last van. Beveiligingsbedrijf Sophos heeft al gewaarschuwd voor het lek. Het is niet bekend of de nieuwe Twitter-interface, die vorige week werd aangekondigd, ook kampt met de problemen. Twitter heeft nog niet gereageerd op het lek.

De oorzaak van het probleem ligt waarschijnlijk in het feit dat Twitter html-code niet weet te herkennen en te verwijderen wanneer deze direct na een internetadres, gevolgd door het @-symbool, wordt geplaatst. Daardoor kan het href-attribuut, waarin zich de locatie van een hyperlink bevindt, worden gesloten en kunnen gebruikers hun eigen attributen toevoegen. Zo is het mogelijk om de achtergrondkleur of het lettertype van een tweet te veranderen, maar ook om een onMouseOver-event toe te voegen. Door dit laatste kan javascript-code automatisch worden uitgevoerd wanneer een gebruiker met zijn muis over de tweet beweegt.

Update, 15:02: Gebruikers van Twitter melden dat ze automatisch berichten retweeten van een bepaalde gebruiker, zodra ze de webversie bezoeken. Met de muis over een bepaalde tweet gaan is niet meer vereist. Dit komt ogenschijnlijk doordat de 'auteur' van de tweet zijn link een specifieke css-class heeft toegewezen, waardoor de tweet de hele pagina in beslag neemt.

Update, 15:32: De nieuwe versie van Twitter lijkt geen last te hebben van het probleem.

Update, 15:39: Twitter zegt van de problemen op de hoogte te zijn en aan een oplossing te werken.

Update, 16:02: Del Harvey, leider van het beveiligingsteam van Twitter, meldt dat het lek gedicht zou moeten zijn.

L33t javascript power, I haz it

Volgende 15:11 Aziatische StarCraft II-spelers krijgen toegang tot Noord-Amerikaanse servers
Vorige 14:15 Microsoft breidt Zune-videoverhuurdienst in Nederland uit naar pc
Advertentie

Reacties

«  1  2  3  4  5  6  7  »

In de tussentijd; www.twitter.com mijden en http://m.twitter.com gebruiken!

Of JavaScript uitzetten op Twitter met NoScript.

Je kan beter YesScript gebruiken, NoScript is nogal overkill.


Het is geen Java code, maar JavaScript. Die twee hebben, op de naam na, helemaal niks met elkaar te maken.

Ik denk dat jouw persoonlijke idee over het nut van uitwisselen van informatie er weinig toe doet: veel mensen vinden het wel heel handig. En dan gaat het echt niet alleen om huismoeders die kinderfoto's tweeten.

Verder heb je natuurlijk gelijk; hoewel steeds minder mensen de webclient gebruiken is het raar dat er al weer zo'n relatief eenvoudig scripting lek misbruikt kan worden.

Ik word gek van mensen die "ik wordt" schrijven. Maar daar hoor je me toch ook niet over? ;) (En ik gebruik geen Twitter overigens)

Enorm publiek is maar relatief. Ik geloof dat ik ergens een artikel heb gelezen dat er in NL maar een kleine 200 k mensen actief twitteren. Dat is wel veel natuurlijk, maar vergeleken met Hyves/Facebook/etc slechts een schijntje. Dit invloed en macht van Twitter wordt vaak overdreven, vrees ik.

Ik begrijp die hele aversie tegen Twitter totaal niet. Het ligt eraan wie je volgt, that's all, ik volg hele interessante mensen en hoge piefen in de IT-wereld, ik volg Nature (wetenschappelijk magazine), etc. Op die manier vergaar ik erg veel schitterende informatie, live. Zelf Twitter ik voornamelijk over leuke dingen die ik tijdens mijn werk tegenkom (wetenschap) en technieken die ik gebruik, als je dat leuk vind kan je mij volgen. Volg je echter alleen maar pubers, ja dan gaat het mis.

Je kan beter YesScript gebruiken, NoScript is nogal overkill.
Is maar net wáár je NoScript voor gebruikt. Ik gebruik het (ook) om rotzooi buiten de deur te houden en wil dus zélf bepalen wie wanneer Javascript op mijn PC mag (laten) uitvoeren. Desalwelteplus is het slechts jouw mening en geen feit dat het overkill zou zijn. Voor mij doet NoScript precies wat ik wil, standaard dus géén JS... ;) Juist daardoor zie je hoeveel Javascript (en potentiele vuiligheid dus) sommige sites gebruiken!

Dan krijg je wel een erg beperkte internet-ervaring. Een beetje terug naar de beginjaren.

Vroeger was alles beter... dat weet je toch :)
Er komt nog steeds meer functionaliteit bij waar misbruik van gemaakt kan worden.

De mouseover van jullie plaatje is in ieder geval briljant.
Snap niet dat niemand hier eerder achter is gekomen bij zo'n grote website.

Overigens is het vrij makkelijk om dit te verhelpen dus ik verwacht niet té grote problemen...

[Reactie gewijzigd door Kecin op dinsdag 21 september 2010 14:23]


Mensen bij Twitter.com slapen nog ;) Daarnaast gebruikt iedereen van het Twitter HQ de #newtwitter dus merken ze er niks van.

hier nog meer info:
http://www.sophos.com/blo...ty-flaw-widely-exploited/

EDIT: oeps link staat al in artikel

[Reactie gewijzigd door bartsplendes op dinsdag 21 september 2010 14:23]


Zie inmiddels bij diverse mensen dit soort tweets voorbij komen, onder andere bij Frits Wester, die enorm veel volgers heeft. Hoop dat ze het snel oplossen. In de tussentijd de webinterface van Twitter maar vermijden.

Mijn volledige timeline was gevuld met zwarte balken, maar inderdaad webinterface vermijden. Externe programma`s en http://m.twitter.com hebben er geen last van.

Dat is toch wel een vrij serieuze bug ... Is het zo niet mogelijk om iemand die een mouseover-event uitvoert, ongewenst door te sturen naar een link waar een virus/malware geprepareerd staat om zo de pc te infecteren?

Dat zoiets mogelijk is maakt het juist gevaarlijk (en zorg er voor dat Sophos waarschuwt). Een alert is niet indrukwekkend. Maar goed, javascript wordt toegestaan dus javascript die de browser naar een andere pagina laat schieten (location = "") zal er vanzelf komen (als dat er nog niet is).

Aan de andere kant zal Javascript crosssite dingen niet toelaten (is een beveiliging in de JS engine), je kunt dus alleen redirecten (uiteraard kan daar wel weer rommel staan), maar zaken als je account hacken/hijacken zal dus niet zo snel lukken.

Daarnaast is door de beperkte ruimte in de tweets ook maar beperkte ruimte voor scripts :)

Maar een script element in de HEAD plaatsen die weer een extern script inlaadt en uitvoert zal waarschijnlijk wel passen in een tweet, dus dan heb je effectief weer onbeperkt de ruimte. Zelfde techniek die Bookmarklets gebruiken, maar dan ongevraagd, vanuit een onmouseover.

Aan de andere kant zal Javascript crosssite dingen niet toelaten
Tenzij er nog een bug in je brouwser zit:
nieuws: Onderzoeker publiceert 'ernstig' lek in IE8
Daarnaast is door de beperkte ruimte in de tweets ook maar beperkte ruimte voor scripts
Tenzij het script een ander script van een andere site kan laden.

Ondanks dat het een klein bugje is, hadden de gevolgen groot kunnen zijn. Gelukkig schijnt het verholpen te zijn:
http://www.securelist.com/en/blog/2297/Live_Twitter_XSS

met JQuery's $.getScript() dus precies wel

Aan de andere kant zal Javascript crosssite dingen niet toelaten (is een beveiliging in de JS engine), je kunt dus alleen redirecten (uiteraard kan daar wel weer rommel staan), maar zaken als je account hacken/hijacken zal dus niet zo snel lukken.
Javascript kan de cookie opvragen en een form posten naar een andere website. Account hijacking is dus vrij gemakkelijk.

Dit gaat dus (schat ik) dezelfde problemen opleveren als bij YT een paar maanden geleden, mensen gaan het misbruiken door bijv reclame te maken, of links gaan zetten naar porno- en andere ongewenste sites.

Ik hoop dat dit lek snel gedicht word, anders gaat er een hoop narigheid van komen.

Toch wel apart dat dit pas zo laat gevonden wordt, of er is recent natuurlijk tijdens een update wat fout gegaan. Desalniettemin maakt het twitter vandaag vrijwel onbruikbaar. Zie overigens ook al de eerste cookie onderscheppingen langskomen.

[Reactie gewijzigd door Nielsvr op dinsdag 21 september 2010 14:24]


Ik weet waar mensen nu zitten te zweten :)

Mooie beginners bug.
Een controle op email adressen d.m.v. een @ zijn echt groot.
Je moet rekening houden met IPv4, IPv6 en verschillende RFC's voor local email parts en domein namen.
Een dubbel aanhalings teken (waar nu de bug in zit) mag in de "local part", zelfs meerdere @'s zijn mogelijk!
bijvoorbeeld: "me@home"@example.org

Edit: een foutje in je controle dat een " mag na een @ is dus snel gemaakt!

[Reactie gewijzigd door DJMaze op dinsdag 21 september 2010 14:28]


Je kunt email adressen niet controleren eigenlijk, zelfs een adres als 'localhost' is gewoon valide.

Hier maakt men van e-mail adressen automatisch een mailto link... en in die code zit gewoon een fout. Lijkt me toch niet zo moeilijk om gewoon alle enkele/dubbele quotes te escapen en er mailto: voor te zetten. Inderdaad een echte beginnersfout.

Volgens mij gaat het niet om emailadressen maar om twitternaam (gestart met een @)

Dus normaal word @gebruiker, door twitter iets van http://www.twitter.com/gebruiker gelinked. Kortom de bug zal wel iets zijn van: http://www.twitter.com/ge...e-teken/kwaadaardigscript.

Kortom stop je dit: gebruiker-escape-teken/kwaadaardigscript in een tweet, dan gaat het fout, weet niet of dit hier precies het geval is, maar het zal er niet ver vanaf zitten.

De bug is denk ik ontstaan omdat de reguliere expressie die de twitternaam moet herkennen te "greedy" is.

Edit, de injectie word dus Voor de twitternaam gezet.

[Reactie gewijzigd door raptorix op dinsdag 21 september 2010 15:33]


kwam dit letterlijk 5 minuten geleden tegen
«  1  2  3  4  5  6  7  »

Op dit item kan niet meer gereageerd worden.

Volgende 15:11 Aziatische StarCraft II-spelers krijgen toegang tot Noord-Amerikaanse servers
Vorige 14:15 Microsoft breidt Zune-videoverhuurdienst in Nederland uit naar pc
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011