Archive for the ‘WTF des Tages’ Category

XSS in Etherpad

Es ist wieder soweit, es gibt von einer XSS-Lücke zu berichten. Diesesmal aber keine spezielle Website, sondern gleich ganz viele. Nämlich alle, die Etherpad einsetzen. Das Team ist informiert, nur reagieren tut keiner. Die offizielle Seite schliesst ja eh bald.

Entdeckt wurde der Bug übrigens von @NineBerry im Piratenpad. Also, machen wir es kurz, die Lücke befindet sich in der Datei /src/static/js/broadcast_slider.js in Zeile 145. Dieser Codebereich sorgt für die Ausgabe der Autorenliste im Timeslider. Unter anderem wird dort für Autoren, die ihren Namen angegeben haben, folgender Code ausgeführt:

        var nametd = $('<td></td>');
        nametd.html(author.name || "unnamed");

Wie man in der zweiten Zeile sehen kann, wird der author.name unescaped als HTML in das Element gepackt.

An alle, die einen Etherpad Server betreiben: Ihr müsst nur diese Zeile ändern in

        nametd.text(author.name || "unnamed");

, also aus dem .html ein .text machen! Dann wird der Name nicht mehr ungefiltert ausgegeben.

Google Checkout und dubiose iPhonianer

Hui, es ist da, das iPhone OS 4! Also zumindest die Featurelist und die Developer-Version. Um letztere dreht sich auch dieser Blogpost, zumindest als Einleitung. Ach whatever, jedenfalls hat gerade @michelb einen Link auf Twitter getweetet, der zu einem “UDID activation service” für das erwähnte iPhone OS 4 führt. Laut der Seite kann man sich bei denen sein iPhone für die OS4-Beta freischalten lassen und so die $79 Developer-Account-Gebühr bei Apple sparen. Aber nur auf den ersten Blick.

Auf den zweiten springt einem nämlich folgender Textausschnitt ins Auge:

An Example UDID is: SXQncyB0aW1lIGZvciBJViB0byB1bmxlYXNoIGl0J3MgcG93ZXJzLg==

was daran so auffällig ist? Die =-Zeichen, die auf eine Base64-Verschlüsselung hindeuten. Entschlüsselt steht dort dann

It’s time for IV to unleash it’s powers.

wer oder was auch immer diese[r/s] “IV” ist. Und auch auf der FAQ-Seite gibt es so einige komische Sachen. Als erstes stellt man fest, dass der auf den ersten Blick kostenlos aussehende Service garnicht so kostenlos ist:

We do all this for a one-time fee of $10.

Tjoa, aus der Traum vom unkomplizierten kostenlosen iPhone OS 4. Weiterhin steht dort noch

Q. I live in the U.S. Do I have to use ATT to use Beta 4.0?
A. Absolutely. Failure to do so will give you a $500 paperweight.

äh ja, wünschen wir uns nicht alle einen $500 Briefbeschwerer?

Ok, von der Seite lassen wir dann mal besser die Finger. Aber etwas anderes ist doch noch ganz interessant: Die Seite nutzt Google Checkout. Ich hab das noch nie benutzt und weiß auch recht wenig darüber, allerdings ist mir folgender Codeschnippsel ins Auge gesprungen:

<input name="item_price_1" value="10.00" type="hidden">
<input name="item_currency_1" value="USD" type="hidden">

Moment, kann man da nicht, mit Firebug… Ja, kann man:

Secure checkout with Google

(klick zum größer machen)

Und schon wär’ man Millionär oder wie? Ich kenn mich wie gesagt mit Google Checkout nicht so wirklich aus, hat da einer Erfahrungen? Beim Heise Live-Hacking auf der CeBit hab’ ich mal erfahren, dass jeder weitere Schritt jetzt nicht mehr so ganz legal wäre, also lass ich das mit dem Ausprobieren mal lieber.

Schnee, Schneefrei und Experimente.

“Juchu, Schnee!” hiess es als erstes. Doch dann wurde es kalt. Sehr kalt. -16°C um genau zu sein. Das war um halb 5 morgens. Doch das war noch gar nichts. Heute hat es richtig angefangen zu schneien. Und trotzdem sind einige tolle Bilder rausgekommen. Also aus der Kamera. Aus der Speicherkarte. Whatever.

Dann hiess es heute Abend plötzlich “Juchu, Schneefrei!”. Wie jetzt? Schneefrei? Joa. Wir können uns jetzt schneefrei machen. Wenn ich mal den Sprecher des NRW-Schulministeriums zitieren darf:

Bei extremen Wetterbedingen müssen Eltern selber entscheiden, ob der Schulweg für die Kinder zumutbar ist oder nicht.

Über-18-Jährige dürfen das sogar selber entscheiden.

Falls ihr euch fragt, was ihr mit der möglicherweise gewonnenen Zeit anfangen könnt, und ihr euch schon immer mal gefragt habt, ob es möglich ist, mit der Zunge an einer Laterne kleben zu bleiben, spart es euch: Ja, es geht. Bei einem Anti-Drogen-Spot der schwedischen Regierung kann man sich das Experiment übrigens mal aus nächster Nähe angucken.

In dem Sinne: Viel Spass im Schnee, ich mach es mir in meinem warmen Zimmer schön mit meinem MacBook gemütlich, auch wenn ich morgen wohl zur Schule gehen werde (jaja, vorbildhaft und so. Macht bestimmt ‘nen guten Eindruck wegen Kopfnoten und so ;) ).

Minus null.

Minus 0? Also -0? Was soll das? Gibt es nicht nur +0? Nee. Gibt’s beides nicht. Zumindest nicht laut Wikipedia. Dort heißt es nämlich:

Null ist die einzige reelle Zahl, die weder positiv noch negativ ist.

Aber alles von Anfang an. Angefangen haben meine Gedankenverdrehereien im heutigen Mathematikunterricht. Wir sollten die Extremstellen einer mir nicht mehr bekannten Funktion bestimmen (was aber auch relativ egal ist, da ich einfach ein anderes Beispiel nehmen werde). Soweit so gut. Erste Ableitung=0 gesetzt. Tädä, fertig. Naja fast. Wir wollten natürlich nocht die Art der Extremstellen bestimmen. Also ob lokales oder globales Minimum/Maximum. Soweit auch kein Problem, wäre da nicht die Definitionslücke bei 0. Bei der Funktion handelte es sich nämlich um x^(-1). Also 1/x. (Wie gesagt, das hier ist jetzt eine vereinfachte Form).

Man könnte jetzt darüber streiten, ob + und - als Randmaxima gelten. Wie gesagt, könnte. Doch ich fing an, mir Gedanken über die Definitionslücke zu machen. Ein sehr großer Fehler, wie sich schnell herausstellte. Ich denke nämlich noch jetzt, 4 Stunden später, darüber nach. Mal davon abgesehen, dass ich meine Mitschüler mit meiner Verwirrtheit angesteckt hatte.

Es war dank GeoGebra relativ eindeutig, dass x->0  gegen lief. Aber zusätzlich lief x->-0 gegen -. Häh? Da wären wir wieder bei -0.

Achtung, im nun folgenden Abschnitt herrscht akute Verwirrungsgefahr, da die da unten verwendeten Funktionen keine Definitionslücken aufweisen. Das Problem spiegelt sich trotzdem wieder.

Ich denke Bilder sagen mehr als tausend Worte (auch wenn ich niemals bewusst 1000 Wörter schreiben würde).

Hierbei handelt es sich um f(x)=2^(-x) und g(x)=-2^(-x). Wie wir sehen, läuft f(x) gegen 0. Also gegen +0, was es ja eigentlich garnicht gibt. Und g(x)? Läuft gegen -0. Warum? Es erreicht die 0 nie, wie ja schon gesagt. Und dann bleibt es ja folglich IMMER <0, also negativ. Mit anderen Worten: -0. Also nicht -0, sondern gegen -0. Denn die 0 wird ja nie erreicht, also ist die Null auch nicht negativ. Aber irgendwie doch.

Es gibt jedoch eine ganz logische Erklärung, welche man am besten mit einem zweiten Graphen verdeutlichen kann.

Diesesmal handelt es sich um die Graphen der Funktionen f(x)=1+2^(-x) und g(x)=1-2^(-x). Wie man deutlich sehen kann, geht f(x) gegen 1, g(x) jedoch nicht, wie anzunehmen gegen -1, sondern auch gegen 1. Jetzt sagt man “Ja klar, ist doch logisch, f(x) kommt von oben und g(x) von unten. Warum sollte da was negativ sein?”. Dies ist im Grunde genommen bei der 0 nicht anders. Der Unterschied liegt nur darin, dass logischerweise alles <0 negativ ist. Das ist jetzt vielleicht nicht so wirklich toll ausformuliert, ich bin ja leider auch kein Mathematiker, aber ich denke jeder sollte den Grundgedanken verstanden haben.

Und ich bin froh, dass ich das Minus-Null-Problem endlich aus meinem Kopf verbannen kann. Nächsten Freitag ist nämlich Klausur, und ich denke solche Logikfehler sind da nur hinderlich.

Django auf dem iPod touch

Einige von euch werden wohl einen iPod touch bzw. ein iPod besitzen. Und einige werden ihn/es gejailbreaked haben. Dann kann man nämlich so einige lustige Sachen machen. Die beiden nützlichsten Programme sind – wir ich finde – Terminal und openSSH. Beide jeweils über Cydia installierbar. Nachdem ich das “virtuelle Innenleben” meines iPods gründlich untersucht hatte, dachte ich: “Hey, was ist mit Django?”. Gedacht, getan. Als erstes habe ich über Cydia Python installiert. Dann habe ich mir den Django Tarball heruntergeladen und auf dem Touch extrahiert. Danach habe ich einfach “python setup.py install” aufgerufen – wie gewohnt. Gegen meine Erwartungen verlief alles reibungslos ohne Fehler. Als danach auch noch das Anlegen eines Projekts und das Starten des Dev Servers geklappt hat, wusste ich echt nicht mehr ob ich nun träume oder nicht.

Meine Session dokumentiert:

Lukas–iPod:~ root# pwd
/var/root
Lukas–iPod:~ root# cd Django-1.0.2-final/
Lukas–iPod:~/Django-1.0.2-final root# ls
AUTHORS  INSTALL  LICENSE  MANIFEST.in  PKG-INFO  README  django/  docs/  examples/  extras/  scripts/  setup.cfg  setup.py
Lukas–iPod:~/Django-1.0.2-final root# python setup.py install
running install
running build
running build_py
creating build
[..]
running install_egg_info
Writing /usr/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg-info
Lukas–iPod:~/Django-1.0.2-final root# python
Python 2.5.1 (r251:54863, xx/xx/xx, xx:xx:xx)
[GCC 4.2.1 (Based on Apple Inc. build 5555)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
>>> django.VERSION
(1, 0, 2, ‘final’, 0)
>>> exit()
Lukas–iPod:~/Django-1.0.2-final root# cd ..
Lukas–iPod:~ root# ls
Django-1.0.2-final/  Library/  Media/
Lukas–iPod:~ root# mkdir djangoprojects
Lukas–iPod:~ root# cd djangoprojects
Lukas–iPod:~/djangoprojects root# django-admin.py startproject firsttest
Lukas–iPod:~/djangoprojects root# cd firsttest/
Lukas–iPod:~/djangoprojects/firsttest root# ls
__init__.py  manage.py  settings.py  urls.py
Lukas–iPod:~/djangoprojects/firsttest root# ./manage.py runserver 0.0.0.0:8000
-sh: ./manage.py: Permission denied
Lukas–iPod:~/djangoprojects/firsttest root# chmod +x manage.py
Lukas–iPod:~/djangoprojects/firsttest root# ./manage.py runserver 0.0.0.0:8000
Validating models…
0 errors found

Django version 1.0.2 final, using settings ‘firsttest.settings’
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[21/Feb/2009 20:24:05] “GET / HTTP/1.1″ 200 2059

Und ein “Beweisbild” gibt es auch noch:

Emojis – Unsinn aus Japan – jetzt auch auf dem iPhone!

Nein, nicht aus Japan. Von Apple. Aber FÜR Japan. Die stehen wohl auf sowas. Gemeint sind diese kleinen Smilie-ähnlichen Bildchen, die jedoch nicht nur Smilies enthalten.

Jedenfalls kann man sich diese Bilder durch ein Easter Egg im iPhone freischalten. Hier zeige ich wie’s geht – auf eigene Verantwortung! Für entstehende seelische Schäden übernehme ich keine Verantwortung!

1. Ladet euch die kostenlose App Spell Number:

Dann müsst ihr sie öffnen. Wer hätte es gedacht. Und da ich Screenshots sooo liebe:

Dann gebt ihr die “geheime” Nummer 9876543.21 ein:

Jetzt beendet ihr die Applikation über den Home-Button und geht in die Einstellungen. Dort geht ihr nach General->Keyboard->International Keyboards->Japanese und aktiviert “Emoji”. Das ganze schön dokumentiert:

Ab jetzt könnt ihr die sinnfreien Bildchen überall verwendet. Klickt dazu bei der Tastatur auf das “International-Symbol” unten links:

Und dann… Augen zu, da sind sie:

Auf den ersten Blick: Ok, kitschige Smilies. Aber denkste! Unten in den Tabs gibts noch mehr, z.B.:

In diesem Sinne: Seht zu wir ihr damit klar kommt :P

Happy 1234567890!

Wow, es ist geschafft. Soeben hat der Unix Timestamp den magischen Wert von 1234567890 übersprungen!

Laut Wikipedia werden zu solchen “Events” so genannte time_t parties gefeiert:

Unix-Enthusiasten haben es zum Brauch gemacht, zu bestimmten Werten der Unixzeit sogenannte time_t parties – ähnliche den Neujahrsfeiern zum Jahreswechsel – zu veranstalten. Üblicherweise werden runde Dezimal-Werte, wie 1.000.000.000 oder 2.000.000.000 gefeiert. Unter manchen Benutzern werden allerdings auch runde Binär-Werte gefeiert, beispielsweise +230 (1.073.741.824), welcher auf den 10. Januar 2004 13:37:04 UTC fiel.

Ein eindeutiger Grund für mich dies auch zu tun :)

Es gab sogar einen extra Header für Xairro und eine extra Seite:

In diesem Sinne: Happy 1234567890!

Die YouTube Benutzung ist illegal. Oder so.

Wenn man sich mal die YouTube terms of use anguckt stößt man auf so manche merkwürdige Passagen. So zum Beispiel unter 5 – “Your Use of Content on the Site”:

Content on the Website is provided to you AS IS for your information and personal use only and may not be downloaded, copied, reproduced, distributed, transmitted, broadcast, displayed, sold, licensed, or otherwise exploited for any other purposes whatsoever without the prior written consent of the respective owners.

Auf Deutsch: “Alles meins, du darfst nichts”. Was ich aber viel fragwürdiger finde: Da steht, dass man bei denen nichts “downloaden”, also herunterladen darf. Nur was macht denn ein Browser? Genau! Er lädt Daten von denen herunter. Sonst wäre YouTube leer. Also nichts. Die terms of use dürfte man irgendwie auch nicht lesen, denn auch diese wurden vom Browser temporär heruntergeladen.

Ich tauch dann mal unter bevor die erste Abmahnung kommt, denn ich hab nicht nur die terms of use heruntergeladen, sondern auch noch gecopied. Ganz böse also.

Nachtrag: Ich hatte den Koffer schon gepackt, da hab ich mir das nochmal durchgelesen. WHAT-THE-FUCK?! Man darf die Informationen nicht “displayen”, also anzeigen? Ist Google echt so stark von der Finanzkrise betroffen, dass sie jetzt schon theoretisch JEDEN besucher der Seite abmahnen müssen?!

Hat ProSieben Hunger?

So kommt es mir zumindest als Ex-Galileo-Gucker vor.

WOW

Nein, nicht das Computerspiel. Aber auch ein Hype. Es geht um Apple. Um die Macworld eher gesagt. Wie ja vermutlich bekannt ist gibt es keinen Live Videostream von dort. Also dachten wir uns: Hey, eine Marktlücke!

Und bei der Gelegenheit könnte man ja einen Mega-Rickroll starten.

Das Unheil begann durch einen Tweet. Wir wurden hundertfach retweeted, und auch in zahlreichen Blogs und Foren wurden wir gefeatured. So kam es, dass die Zahl der Unique Visitors schnell auf über 3000 schoss – mit 10 pro Sekunde steigend. 10 NEUE besucher PRO SEKUNDE!!! Wow!

Als dann der Rickroll kam waren die Reaktionen bescheiden – von “da läuft noch Intro-Musik” bis hin zu “ich seh Nichts“. Nur wenige kannten wohl den Rickroll. Naja, über 3500 erfolgreiche Rickrolls (Tendenz: Steigend) sind doch was. Und das in 3 Stunden :)