10.01.2015 Views

2014_EN_BrowserFuzzing_RosarioValotta

2014_EN_BrowserFuzzing_RosarioValotta

2014_EN_BrowserFuzzing_RosarioValotta

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DOM fuzzing<br />

• DOM has a complex data structure, that carries the heavy load of modeling all possible operations enabled by modern HTML<br />

– JS – CSS<br />

• Lot of apis: Dom SPECIFICATIONS ARE DEFINED BY and divided in 4 different documents<br />

• Crossfuzz by michal zalewski is still the benchmark<br />

• Lot of mods, widespread coverage hard to spot new crashes<br />

• Nduja introduced some new concepts from DOM Level 2 and 3 specs and provided interesting results<br />

• BASIC WORKflow:<br />

Several namespaces<br />

ON simple elements<br />

And on collections<br />

Create<br />

random<br />

elements<br />

Tweak<br />

elements<br />

attributes<br />

Collect<br />

element<br />

reference<br />

Perform<br />

random<br />

mutations<br />

on DOM<br />

Trigger GC<br />

(e.g. Heap<br />

spray)<br />

Crawl DOM<br />

reference<br />

Define custom<br />

Events handlers<br />

Native JS structures or<br />

DOM collections<br />

Also on event handling<br />

routines

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!