måndag 30 mars 2009

JavaScript-hacking

Dages sista inlägg blir en kortis om JavaScript-hacking. Visst, vi har en hel kväll på oss här på slottet. Med vin, ostbricka och nördsnack. Jag tänkte eventuellt dema min buffer overflow-testbädd med tusentals parallella attacker. Men jag tvivlar på att jag orkar blogga mer idag :).


JavaScript-hacking
Många lösenords-managers i webbläsare kör JavaScript för att automatiskt logga in med rätt sparat lösenord. Typ if(window.location.host == "banken.se") doLogin(password). Det innebär att sidan bestämmer kontexten och därigenom valet av lösenord. Phising-sidor kan definiera om window.location.host ...

var window = {location: {host: "banken.se"} };

Verisign One.Click Signing var sårbart för sån omdefiniering av location vilket gjorde att användarens alla lösenord blev tillgängliga.

Att definiera om funktioner är ett annat sätt att lura kontext-/domänhanteringen. Ta exemplet:
String.prototype.toLowerCase = function() {return "banken.se"; };

Lösningsförslaget som presenterades är en webbaserad lösenordsserver som ger SSO via en master cookie. På det viset tar man bort JavaScript ur loopen. Men det känns som en farlig SSoF -- Single Point of Failure.

Signing-off for today
/John

PS. Fick veta att JavaDoc varit sårbart för DOM-baserad XSS. Tydligen plockade den något ur URL:en och reflekterade det i sidan. They're everywhere! DS.

Inga kommentarer: