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!

tisdag 4 januari 2011

XSS via PayPal-betalningar

Ibland händer sånt som man normalt bara skämtar om. Book injection förra månaden var en sådan grej. Nu visar det sig att meddelandefältet vid PayPal-betalningar tillåter JavaScript, dvs möjliggör cross-site scripting. Man slutar aldrig att förvånas.

söndag 2 januari 2011

Ny fuzzer hittar 100 buggar i WebKit, FF, IE och Opera

Michal Zalewski (@lcamtuf) släppte igår sin nya fuzzer cross_fuzz som har hittat hundratalet buggar i alla de stora webbläsarna. Den åstadkommer sin magi genom att parse:a DOM:en i en flik, samla info om alla objekt, ändra egenskaper och anropa funktioner, sen stänga det dokumentet och använda de insamlade referenserna i en ny flik. Webbläsarna får typiskt problem med sin garbage collection där objekt överlever fast de inte ska och så vidare. Läs om algoritmen och buggarna på hans blogg.

En allvarlig del i det hela är att teamet bakom Internet Explorer inte patchat de buggar som är av säkerhetskaraktär. På sex månader. Michal publicerar en logg där man kan följa den frustrerade diskussionen med IE-folket. Börja läs vid "1) July 26, 2010: original report to MSRC, noting multiple crashes and GDI corruption issues. Acknowledged, case 10205jr."