Fuzzing
Testing with Random Input
Lukas Gamper, lukas.gamper@usystems.ch
www.webling.ch
What is Fuzzing
- Automated software testing technique
- Provides invalid, unexpected or random input
- Tries to crash the program
History

Applications
- Shellshock found by fuzzing
- Heartbleed reproduced by fuzzing
- Google and Microsoft provide cloud fuzzers for programs like Chrome or FreeType
Advantages
- Fast
- "Thinks" out of the box
- Doesn't require knowledge of the code
Singlepagefuzzer
- Fuzzer for web apps
- No product found
- On GitHub github.com/usystems/singlepagefuzzer
- No code changes necessary
- Supported browsers:




How does it Work

How does it Work

How does it Work

How does it Work

How does it Work

How does it Work

How does it Work

(function(el){
el.src='https://cdn.rawgit.com/usystems/singlepagefuzzer/' +
'master/src/singlepagefuzzer.js';
el.onload=function(){
SinglePageFuzzer.start({});
};
document.head.appendChild(el);
})(document.createElement('script'));
Paste Config into Console
(function(el){
el.src='https://cdn.rawgit.com/usystems/singlepagefuzzer/' +
'master/src/singlepagefuzzer.js';
el.onload=function(){
var SPF = SinglePageFuzzer;
SPF.start({
Just Important Elements
selectFilter: function(x, y, el) {
while (el !== null) {
if (el.nodeName == 'SECTION') return true;
else el = el.parentElement;
}
return false;
}
});
};
document.head.appendChild(el);
})(document.createElement('script'));
(function(el){
el.src='https://cdn.rawgit.com/usystems/singlepagefuzzer/' +
'master/src/singlepagefuzzer.js';
el.onload=function(){
var SPF = SinglePageFuzzer;
SPF.start({
Drop some Requests
request: {
lag: 1000, // ms
dropRequest: 0.1, // probability
dropResponse: 0.1, // probability
offline: 10000, // ms
online: 5000 // ms
}
});
};
document.head.appendChild(el);
})(document.createElement('script'));
(function(el){
el.src='https://cdn.rawgit.com/usystems/singlepagefuzzer/' +
'master/src/singlepagefuzzer.js';
el.onload=function(){
var SPF = SinglePageFuzzer;
SPF.start({
Control Events
eventDistribution: [
SPF.createEventProbability(0.8, [
SPF.createClick()
]),
SPF.createEventProbability(0.2, [
SPF.createDblclick()
])
]
});
};
document.head.appendChild(el);
})(document.createElement('script'));
Live Demo
Singlepagefuzzer
github.com/usystems/singlepagefuzzer
Lukas Gamper, lukas.gamper@usystems.ch



Fuzzing Frontend Conf 17
By gamperl
Fuzzing Frontend Conf 17
fuzzing web applications
- 290