ProDisFuzz

Contents

  1. Introduction
  2. Generic Features
  3. Bioinformatics Features
  4. License
  5. Usage

Introduction

ProDisFuzz is a fuzzing program, that means it is designed to test a target application for potential vulnerabilities or strange behavior while executing input data. One special feature of fuzzing is that it is a (semi-)automated testing process and generates usually a large number of test cases.

The whole Fuzzing process can be divided into 7 phases:

  1. Target identification
  2. Interface identification
  3. Fuzz data generation
  4. Data execution
  5. Monitoring for flaws
  6. Impact analysis
  7. Documentation

ProDisFuzz can help you in phases 3–5 and 7 and hence reduce the effort a tester has to invest while testing an application.

Generic Features

Bioinformatics Features

To learn a protocol structure ProDisFuzz makes use of algorithms which usually can be found in bioinformatics. The mathematical problem of learning a protocol structure from a few communication sample captures is equivalent to the problem of aligning (sub)sequences of protein sequences (for details see http://en.wikipedia.org/wiki/Bioinformatics and http://packetstormsecurity.com/sniffers/PI.tgz).

ProDisFuzz uses the following algorithms:

The process of learning a protocol with help of these algorithms is executed as follows:

  1. ProDisFuzz collects and reads all communication captures.
  2. It chooses two communication sequences that have minimal averagely distance by applying neighbor joining and n-grams.
  3. It aligns the two sequences with the Hirschberg algorithm.
  4. It deletes the two sequences of the set of sequences and adds the new aligned sequence to it.
  5. It repeats steps 2–4 until there is only one aligned sequence left.
  6. It cleans up the sequence from inconsistencies.

License

Currently ProDisFuzz is released under the WTFPL. As the program is more a proof of concept rather than a complete fuzzing framework the code can be used without any restrictions: Study it, copy it, modify it.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

Usage

Just start the jar file, e.g. through double-clicking.

ProDisFuzz has two modes, both of them self-explaining in their usage:

  1. The learning mode is used to create the protocol structure from a given set of captures.
  2. The fuzzing mode uses the structure generated in the previous step to test a remote server.