Top Banner
Grinder AMol NAik
17
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Grinder talk

Grinder

AMol NAik

Page 2: Grinder talk

This talk is NOT about …

Page 3: Grinder talk

But this …

Page 4: Grinder talk

What is it ?

Grinder is a system to automate the fuzzing of web browsers and the management of a large number of crashes.

Page 5: Grinder talk

fuzz…fuzzz…fuzzzz

Fuzz testing or fuzzing is a software testing technique, often automated or semi-automated, that involves providing invalid, unexpected, or random data to the inputs of a computer program. The program is then monitored for exceptions such as crashes, or failing built-in code assertions or for finding potential memory leaks.

-Wikipedia

Page 6: Grinder talk

Way Ahead …

Page 7: Grinder talk

Server

Fuzzer

Node

Page 8: Grinder talk

Grinder Server

Page 9: Grinder talk

Fuzzer HTML file with your own logic !!!

Add ‘logging.js’

Logging

- start logger = null;!!!logger = new LOGGER( "grind" );!!!logger.starting(); - end logger.finished();!!!reload!

Page 10: Grinder talk

Fuzzer Everything happening in browser should be logged !!!

logger.log(“document.createElement(‘div’);”, “grind”, 1);!

Page 11: Grinder talk

Grinder Node

Ruby 2.0

config.rb

grinder_logger.dll

grinder.rb

testcase.rb

reduction.rb

Page 12: Grinder talk

Grinder Node config.rb

- configuration file

- used for fuzzing & creating testcases

- name, server url, symbols dir, timeout, local server ip & port

Page 13: Grinder talk

Grinder Node grinder_logger.dll

- get injected into browser process

- responsible for logging the testcase

On a 32bit Windows system:

Copy '.\grinder\node\data\x86\grinder_logger.dll' to 'c:\windows\system32\'!

Page 14: Grinder talk

Grinder Node grinder.rb

- responsible for fuzzing

.\grinder\node>ruby grinder.rb [--config=c:\path\to\alternative\config.rb] [--fuzzer=FUZZER] --browser=BROWSER!

Page 15: Grinder talk

Grinder Node testcase.rb

- generates html file from .log file

.\grinder\node>ruby testcase.rb [--config=c:\path\to\CONFIG.RB] --log=c:\path\to\XXXXXXXX.XXXXXXXX.log --save=c:\path\to\XXXXXXXX.XXXXXXXX.html!

Page 16: Grinder talk

Grinder Node reduction.rb

- reduces the testcase at minimum

Page 17: Grinder talk

That’ all !!!

AMol NAik @amolnaik4