Sie sind auf Seite 1von 3

Die Warsteiner Vereinsaktion und ihre Betrger

Manipulation oder tatschliche Stimmabgabe ?


Es wurde in letzter Zeit viel ber das Voting www.derwesten.de/staedte/warstein/warsteiner_vereinsaktion/ diskutiert und immer wieder wurden Behauptungen laut, dass dieses Voting von einigen wenigen Vereinen massiv manipuliert wird. Man beachte den sich anbahnenden Shitstorm bei FB. Daher scheint es angebracht, diese Frage einer genaueren Betrachtung zu unterziehen: Da es vorliegend um die Manipulation einer Webapplikation geht, sind die folgenden Addons erforderlich: Firefox oder TOR-Browser Firebug (Development Console): https://addons.mozilla.org/de/firefox/addon/firebug/ Oder: Web Developer Toolbar: https://addons.mozilla.org/de/firefox/addon/web-developer/ Erkenntnis #1: Cookies Unlngst haben die meisten Vereine erkannt, dass die wiederholte Stimmabgabe durch den Cookie voting_17455965 verhindert werden soll. Lscht man diesen Cookie, kann erneut abgestimmt werden und zwar mit ein und demselben Captcha-Code. Deaktiviert man die Cookies hingegen vollstndig, muss sie auch nicht jedes Mal lschen. Die Stimmabgabe ist man kann es kaum glauben auch bei Nichtbestehen des Cookie-Checks mglich.

Erkenntnis #2: Der Ajax Layer mit den Ergebnissen Natrlich ist es fr den ungehinderten Klick-Vorgang hinderlich, wenn nach jedem Klick das Ergebnisfenster direkt ber den OK-Button erscheint und diesen verdeckt. Man knnte zunchst an ein Klickmakro denken, um diese Hrde zu berwinden, doch geht das alles noch viel einfacher. Wie ? Es steht bereits in der berschrift ! AJAX bezeichnet eine sog. asynchrone Datenbertragung und ist im Prinzip nichts anderes als JavaScript. JS wird jedoch browserseitig ausgefhrt und kann somit auch lokal verndert werden. Hier verschieben wir den Layer einfach durch eine kleine nderung des Cascading Style Sheets:

Durch nderung des Left-Attributs von mod_voting.layer verschiebt sich das Fenster nach links und da JS nun einmal browserseitig ausgefhrt wird, kann nun beliebig oft auf den OK-Button geklickt werden. Der Layer wird dabei stets in der neuen Position geladen und kann den Button nicht mehr verdecken.

Erkenntnis #3: Makros Makros dienen der Automatisierung. Hier knnte man auf die Idee kommen das Klicken zu automatisieren. Es gibt zahlreiche Makro Recorder zum Download. Ein solches Programm selbst zu schreiben wrde sich auf folgende Zeilen beschrnken: Do Loop { // Beginne eine Schleife Click // Klicke mit der linken Maustaste Wait // Halte fr ein paar Millisekunden an, damit die Anfrage bermittelt werden kann } // Ende der Schleife und Neustart Erkenntnis #3: Die Zeitbegrenzung Einige Vereine sind ja schon lngst auf diese Mglichkeit aufmerksam geworden, nur stellt man nach wenigen Minuten fest, dass es nicht mehr funktioniert, weil der Captcha-Code abgelaufen ist. Woran liegt das ? Zu aller erst schauen wir mal in das Netzwerkprotokoll unseres Firebug, wo die einzelnen POST-Anfragen mitgeschnitten wurden:

Eine POST-Anfrage sieht wie folgt aus: http://www.derwesten.de/widget/id6002705?ctxArt=7455965&view=ajax&action=poll&captcha=6kT2&captch aId=A92A4CFF&captchaTc=1361234567890&mentometerId=7455965&startVoteId=7455965&voteIndex=0&vo teName=0123456

Die Anfrage beinhaltet grds. Daten, die in den Formularfeldern und in sog. Hidden-Buttons im Seitenquelltext versteckt wurden. Analysieren wir diese genauer, stoen wir auf captchaTc mit einer seltsamen Zahl dahinter. Hierbei handelt es sich offensichtlich um einen UNIX-Zeitstempel, also die Summe aller Millisekunden (daher so viele Stellen) vom 1. Januar 1970 00:00 Uhr an. Dieser wird beim Klick auf den OK-Button erzeugt und Bestandteil der Anfrage. Deshalb ist der Captcha-Code nur begrenzt gltig. Erhhen wir diesen Wert zb. auf den Timestamp des Enddatums, kann mit einem einzigen Captcha bis zu diesem Datum abgestimmt werden. Erkenntnis #4: Das Abstimm-Skript Nun bietet Firebug zwar die Mglichkeit eine Anfrage erneut zu senden, doch knnen wir dabei nicht den CaptchaTC erhhen. Daher bentigen wir nun einen HTTP Request Generator wie zB. Live HTTP Headers oder Tamper Data (Firefox-Addons). Damit der Westen nun auch denkt, die Anfrage sei von seiner Website aus abgesendet worden, ist allerdings darauf zu achten, dass der korrekte Anfrage Header ebenfalls Teil der POSTAnfrage ist. Auch dieser lsst sich vollkommen unproblematisch ber Firebug entnehmen. Einen Request-Generator kann man selbstverstndlich auch selber programmieren sei es in PHP, JavaScript, Pearl. Am Einfachsten ist die Verwendung von entsprechenden Scripts, die im Netz zahlreich vorhanden sind, oder man greift einfach auf die gute alte Curl zurck. Diese kann auch ganz wunderbar durch TOR versenden und beinhaltet eine integrierte Loop-Funktion. Erkenntnis #5: Manipulationen sind mglich ! Die eingangs aufgeworfene Frage ist also eindeutig mit Ja, es wird manipuliert! zu beantworten. Selbst ein einfaches Klickmakro erreicht bereits ber 1000 Stimmen pro Minute. Mit einem Skript sind durchaus mehrere hundert Stimmabgaben pro Sekunde mglich. Der Captcha bietet dagegen gerade keinen Schutz, weil ein und dasselbe Captcha-Bild nahezu unbegrenzt gltig ist, wenn man die Zeitbegrenzung entsprechend verndert. Dennoch mchte ich allen Lesern dieses Dokumentes eindringlich davon abraten, die aufgefhrten Methoden in der Praxis zu erproben. Betrug ist kein Kavaliersdelikt ! Zwar sprechen die Behauptungen der Warsteiner und des Westens (Es sind keine Manipulationen ersichtlich.) sehr dafr, dass eine ordnungsgeme Dokumentation der Stimmabgaben (zB. durch Serverlogs) nicht erfolgt, allerdings kann das ja noch werden. Dieses Dokument dient allein als technische Informationsquelle und soll gerade die Betreiber solcher Votings fr deren Sicherheitsdefizite sensibilisieren. Eine unfaire Abstimmung und die anschlieende Ehrung des grten Betrgers sind nichts, womit sich ein renommiertes Unternehmen schmcken sollte. Haben Sie vielen Dank fr Ihre Aufmerksamkeit.