onsdag 2 februari 2011

Ny RFC om server-autentisering vid SSL/TLS

I dagarna kom en mycket intressant RFC som precis nått Proposed Standard RFC inom IETF.

Drakoniskt namn: Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)

Men den specar hur SSL-cert bör se ut och hur server-autentisering med X.509-cert ska gå till.

Tre intressanta saker som är med:
  • Sluta ange domännamn i certifikatets Common Name
  • Börja ange domännamn i subjectAlternativeName dNSName
  • Sluta med joker-certifikat, t ex *.owasp.org
Här länken: http://tools.ietf.org/html/draft-saintandre-tls-server-id-check-14

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.

söndag 23 januari 2011

JavaScript-utmaning inför OWASP Summit

Nyss offentliggjordes första rundan av vår officiella OWASP Summit Challenge "makeXORbreak". Man ska skriva ett skript som visar sitt namn på sidan bättre (mer prominent) än medtävlarna. Fula tricks och bråk om DOM:en väntar.

Läs allt och sätt igång på http://makeXORbreak.com.

fredag 21 januari 2011

XSS-skanner som Chrome-tillägg

Gareth Heyes har släppt sin cross-site scripting-skanner "XSS Rays" i ny version, denna gång som ett Google Chrome-tillägg. Läs om verktygets funktioner och ladda ner tillägget.

måndag 17 januari 2011

Topp 10 Web Hacking Techniques 2010

Jeremiah Grossman publicerade nyss Top 10 Web Hacking Techniques 2010 – den årliga listan som röstas fram av communityn och sponsras av bland annat OWASP.
  1. 'Padding Oracle' Crypto Attack (poet, Padbuster, demo, ASP.NET), Juliano Rizzo, Thai Duong
  2. EvercookieSamy Kamkar
  3. Hacking Auto-Complete (Safari v1, Safari v2 TabHack, Firefox, Internet Explorer), Jeremiah Grossman
  4. Attacking HTTPS with Cache Injection (Bad Memories), Elie Bursztein, Baptiste Gourdin, Dan Boneh
  5. Bypassing CSRF protections with ClickJacking and HTTP Parameter PollutionLavakumar Kuppan, Manish Saindane
  6. Universal XSS in IE8 (CVE, White Paper), Eduardo Vela (sirdarckcat), David Lindsay (thornmaker)
  7. HTTP POST DoS ,Wong Onn Chee, Tom Brennan
  8. JavaSnoopArshan Dabirsiaghi
  9. CSS History Hack In Firefox Without JavaScript for Intranet PortscanningRobert "RSnake" Hansen
  10. Java Applet DNS RebindingStefano Di Paola

fredag 14 januari 2011

Den svaga länken (rolig bild)

Det brukar ju inte vara en massa lustigheter på den här bloggen men ibland så. Tyckte nedanstående bild var rätt skoj. Antagligen ett arrangemang men ändå.
Den svaga länken.

onsdag 5 januari 2011

DoS:a PHP med en siffra

Flyttalet 2.2250738585072011e-308 hänger PHP 5.3 och öppnar upp för enkla men effektiva DoS-attacker.

Varför? Läs vidare.

Normala flyttal
Ett 64-bitars flyttal representeras av en teckenbit, elva exponentbitar och 52 mantissabitar. Elva bitar till exponenten innebär att minsta tillåtna exponent är -1022 och den maximala är 1023.

Ett så kallat normalt flyttal karaktäriseras också av att första siffran i mantissan är skild från noll, t ex 6.008043e10. Om första siffran vore noll, t ex 0.540030002e13 så skulle ju talet kunna skrivas 5.40030002e12, dvs med femman först, tolv som exponent och man hade tjänat en siffras precision i mantissan. Därför har man också kunna tolka den första biten som implicit eller gömd. Alltså har man 53 bitars precision i mantissan.

Det betyder att det minsta normala, 64-bitars flyttalet är binärt 1e-1022, decimalt 2.2250738585072010e-308.

Subnormala tal
Vad händer om datorn får ett resultat som är mindre än 1e-1022? Tidigare så ledde det till "flush to zero", dvs resultatet blev noll. Men sen kom man på att till priset av förlorad precision (= mindre antal signifikanta siffror i mantissan) så kunde man fortfarande representera resultatet som ett flyttal. Tricket var att låta första biten i mantissan vara noll för dessa subnormala tal! Exponenten representeras av bara nollor.

Nu plötsligt kunde man representera tal som 0.0000000010111e-1022.

Subnormala tal och PHP
Låt oss nu titta på det där talet som hängde PHP 5.3.

2.2250738585072011e-308 = 0.1111111111111111111111111111111111111111111111111111 x 2^-1022

I minnet representeras det av:
Teckenbiten: 0
Exponenten: 00000000000
Mantissan: 1111111111111111111111111111111111111111111111111111

Om ni räknar ettorna så ser ni att de är 52 till antalet. Tillsammans med den inledande nollan (implicit för 0-exponent) så fyller de hela mantissan på 53 bitar. Vi har alltså att göra med det största möjliga, subnormala flyttalet i ett 64-bitarssystem.

Och det värdet hänger tydligen PHP 5.3!