Archive for the ‘IT-Security’ Category

XSS vulnerability on vimeo.com

Last week I discovered a cross-site scripting vulnerability on the famous video platform vimeo.com. It is based in the search-module, which uses some kind of CSRF-protection (which doesn’t work pretty well, by the way). The problem is that search-links are only valid once and when you try to request the page a second time, an error will be raised. So, what’s the problem? Vimeo outputs the search term unfiltered – I guess you know how that story goes…

The sad thing about this bug is that I reported it seven days ago to the vimeo-team but didn’t get any response yet (except for an email-address via their team’s twitter-account). I’ve also recorded a screencast demonstrating the problem. Maybe some publicity will get the team to fix the bug.

Vimeo XSS vulnerability from Lukas Klein on Vimeo.

Note: The “feature” doesn’t handle old URLs like I said in the video, it’s basically something like a CSRF-protection (whyever), so that the link only works one time.

Thoughts on privacy

Yesterday a scientist from Lüneburg published details about his webcrawler which he used to crawl about 1.6 million datasets from the social network SchuelerVZ including the name, the name of the school, the school id and the url of the profile picture. So, how did he do this? He created over 800 accounts which he used to bypass the request-limits. He and the media called this a “Datenleck”.

You have to know that all the information he crawled is visible to everyone who’s in possession of an user account. He hasn’t bypassed any data protection mechanisms except for the request-limit. Is this really a “Datenleck”? I don’t think so. I think it’s rather a problem of our society than of SchuelerVZ. On the one hand we’re all trying to hide our private life from our neighbours by building fences and so on, but on the other hand we’re publishing everything, really everything, to social networks like Twitter or the mentioned SchuelerVZ. So why are the people complaining that someone copied the data they voluntarily published to the web? In my opinion you have to accept that someone can copy the data you decide to publish. If a human can read the data, a crawler can do so, too. There’s no effective way of preventing data from beeing accessed by non-humans. Of course you can use captchas and other techniques, but I think they’re rather annoying than helpful. Another method are request-limits like those that SchuelerVZ already uses. But as you can see, it’s easy to bypass them. You could also limit the requests per IP, but that makes the crawler in the best case just slower, in the worst it spreads over multiple hosts with different IPs.

Instead of thinking about how data can be hidden from robots, we should think about what data we are publishing to the web. Even if this means an additional cost of educational work, the result will be much more satisfying than any existing or upcoming turing-test.

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.