image

Twitter-accounts wagenwijd open voor hackers

vrijdag 28 augustus 2009, 13:13 door Redactie, 4 reacties

Een cross-site scripting (XSS) lek in Twitter maakte het kinderspel voor aanvallers om andermans account over te nemen. Alleen het sturen van een tweet volstond om toegang tot het account te krijgen, zo ontdekte beveiligingsonderzoeker James Slater. Hij meldde het probleem eerder deze week bij Twitter, maar die zouden het lek in eerste instantie niet begrepen hebben. "Het lijkt erop dat ze een behoorlijk amateuristische poging hebben gedaan om het probleem op te lossen, waarbij ze het gigantische probleem dat ze in het gezicht staart helemaal missen", aldus Slater.

"Twitter heeft één van de meest basale fouten in het programmeren van webapplicaties gemaakt, vertrouw nooit blindelings data die van buiten afkomstig is." De microbloggingdienst verifieerde onvoldoende de input van gebruikers bij het venster voor het toevoegen van third-party clients. Daardoor konden aanvallers JavaScript tags en HTML code aan Tweets toevoegen. "Alleen het zien van zo'n tweet zorgt ervoor dat code binnen je browser draait en jou nadoet en alles kan doen wat je browser doet." Zo is het mogelijk om gebruikers naar andere websites door te sturen, tweets te delen, berichten naar volgers te sturen, volgers te verwijderen of het gehele account in kwestie over te nemen.

Inmiddels heeft Twitter het probleem wel verholpen, zonder dit aan de onderzoeker te melden. Ook zijn de accounts die Slater als demonstratie gebruikte door Twitter geschorst. Een video van het beveiligingsprobleem is nog wel op zijn weblog te vinden, inclusief aanvullende details over het lek.

Reacties (4)
28-08-2009, 13:43 door MrBil
Is er een nieuwe variant van de XSS ontdekt ? Of is dit gewoon de zoveelste bericht over hetzelfde geval.

Zo iets kan je toch ook zelf maken:
$logins = @split("\n", $list);
foreach($logins as $login) {
$data = @split(":", $login);
sendTweet($data[0], $data[0], (!empty($message) ? $message : $argv[1]));
}
function sendTweet($username, $password, $msg)
{
$url = "http://twitter.com/statuses/update.xml";
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);

Natuurlijk post ik niet het gehele script.
28-08-2009, 15:28 door Anoniem
Door MrBil:
Natuurlijk post ik niet het gehele script.

Spelbreker ;)
28-08-2009, 16:25 door Anoniem
Natuurlijk post ik niet het gehele script.
Dan kon je ook net zo goed helemaal geen script posten, lijkt me... Aan een half script heeft niemand wat :).
28-08-2009, 17:41 door Anoniem
Het is sowieso een zinloos script, het stuurt alleen als 3rd party application een tweet (nouja, dat zou de functie doen). Pak als input iets als <script>alert('lol faal')</script> en je hebt je xss X_X

Ik blijf het grappig vinden dat zelfs gigantische websites de user input niet fatsoenlijk sanitizen terwijl het zo bekend is. Dat veel websites vulnerable zijn voor csrf kan ik nog begrijpen maar xss en sql injection zouden nu toch eigenlijk wel verleden tijd moeten zijn =\ Maar goed, anders hebben 12 jarige turkse 'hackers' ook weer teveel vrije tijd natuurlijk.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.