All Projects → MozillaSecurity → framboise

MozillaSecurity / framboise

Licence: other
Framboise is a fuzzer for in-depth testing of WebAPIs.

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to framboise

FastEndpoints
A light-weight REST API development framework for ASP.Net 6 and newer.
Stars: ✭ 2,386 (+11261.9%)
Mutual labels:  webapi
aspnet-api-versioning
Provides a set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET Core.
Stars: ✭ 2,396 (+11309.52%)
Mutual labels:  webapi
UrlFirewall
UrlFirewall is a lightweight, fast filtering middleware for http request urls.It supports blacklist, whitelist mode.Supports persisting filter rules to any media.You can use it in webapi, gateway, etc.
Stars: ✭ 64 (+204.76%)
Mutual labels:  webapi
ms-identity-javascript-angular-spa-aspnetcore-webapi
An Angular single-page application that authenticates users with Azure AD and calls a protected ASP.NET Core web API using MSAL Angular
Stars: ✭ 72 (+242.86%)
Mutual labels:  webapi
afl-dynamorio
run AFL with dynamorio
Stars: ✭ 32 (+52.38%)
Mutual labels:  fuzzer
unicorn-fuzzer
expansion of afl-unicorn using c++
Stars: ✭ 25 (+19.05%)
Mutual labels:  fuzzer
nextgen
A Genetic File, Syscall and Network Fuzzer.
Stars: ✭ 58 (+176.19%)
Mutual labels:  fuzzer
aspnet-core-web-api-using-odata
Demo application of my speech 'Add OData Support to Your Asp.Net Core Web Api' at Dotnet Konf İstanbul. http://dotnetkonf.com/
Stars: ✭ 28 (+33.33%)
Mutual labels:  webapi
IEC61850-MMS-Fuzzer
Mutation Based Fuzzer for IEC61850 Server IED'S
Stars: ✭ 20 (-4.76%)
Mutual labels:  fuzzer
RRQMSocket
TouchSocket是.Net(包括 C# 、VB.Net、F#)的一个整合性的、超轻量级的网络通信框架。包含了 tcp、udp、ssl、http、websocket、rpc、jsonrpc、webapi、xmlrpc等一系列的通信模块。一键式解决 TCP 黏分包问题,udp大数据包分片组合问题等。使用协议模板,可快速实现「固定包头」、「固定长度」、「区间字符」等一系列的数据报文解析。
Stars: ✭ 286 (+1261.9%)
Mutual labels:  webapi
webApi-angularjs
⚓ Definitely simplifies your work with server side & organizes webApi layout to further managing.
Stars: ✭ 15 (-28.57%)
Mutual labels:  webapi
SPA-With-Blazor
Creating a Single Page Application with Razor pages in Blazor using Entity Framework Core database first approach.
Stars: ✭ 27 (+28.57%)
Mutual labels:  webapi
active-directory-javascript-nodejs-webapi-v2
A small Node.js Web API that is protected with Azure AD v2.0 to validate access tokens and accepts authorized calls using Passport.js
Stars: ✭ 76 (+261.9%)
Mutual labels:  webapi
rabbitmq-labs
The source code for my RabbitMQ tutorials.
Stars: ✭ 45 (+114.29%)
Mutual labels:  webapi
TraceHub
Centralized and distributed logging for Web applications and services, extending System.Diagnostics and Essential.Diagnostics, providing structured tracing and logging withou needing to change 1 line of your application codes
Stars: ✭ 22 (+4.76%)
Mutual labels:  webapi
RTSPhuzz
RTSPhuzz - An RTSP Fuzzer written using the Boofuzz framework
Stars: ✭ 33 (+57.14%)
Mutual labels:  fuzzer
sdk-oauth
Fitbit SDK example application.
Stars: ✭ 66 (+214.29%)
Mutual labels:  webapi
sanitizer-polyfill
rewrite constructor arguments, call DOMPurify, profit
Stars: ✭ 46 (+119.05%)
Mutual labels:  webapi
GPONMonitor
GPON Monitoring tool for Dasan Networks GPON OLTs
Stars: ✭ 26 (+23.81%)
Mutual labels:  webapi
webapiclientgenexamples
Code Examples for using WebApiClientGen
Stars: ✭ 43 (+104.76%)
Mutual labels:  webapi

Logo

Current Release IRC

Run in Docker

docker run -e FUZZER_MAX_RUNTIME=600 -it --rm taskclusterprivate/framboise:latest ./framboise.py -settings settings/framboise.linux.docker.yaml -fuzzer 
1:Canvas2D -debug -restart

Setup for MacOS and Linux

git clone https://github.com/mozillasecurity/framboise.git
cd framboise/framboise
./setup.py

Setup for Windows

  1. Ensure Python is installed.

  2. Download the pip package manager.

  3. Run these commands in the Command Prompt (Start Menu > cmd):

    git clone https://github.com/MozillaSecurity/framboise.git
    cd framboise/framboise
    python get-pip.py
    ./setup.py
  4. Disable User Account Control (UAC):

    • Control Panel > User Accounts and Family Safety > User Accounts
    • Change User Account Control settings
    • Set to Never Notify
  5. Edit settings/framboise-{platform}.yaml with your own paths to the target applications.

Sample Module

/*
 * XyzAPI References
 *
 * WebIDL:
 * Specification:
 *
**/

var fuzzerXyz = (function() {
  /*
  ** Initialization
  ** Commands which shall be called at the beginning of a testcase.
  */
  function onInit()
  {
    let cmd = []

    return cmd
  }

  /*
  ** Main
  ** Command which shall be called after initialization.
  */
  function makeCommand()
  {
    let cmd = []

    return cmd
  }

  /*
  ** De-initialization.
  ** Commands which shall be called at the end of a testcase.
  */
  function onFinish()
  {
    let cmd = []

    return cmd
  }

  /*
  ** Methods and attributes.
  */
  let ObjectMethods = {
    'name': ['a', function() { return 'and_b' }, make.number.any]
  }

  let ObjectAttributes = {
    'name': ['a', 'or_b', 'or_c']
  }

  let Events = {
    'object_name': ['name']
  }

  return {
    onInit: onInit,
    makeCommand: makeCommand,
    onFinish: onFinish,
    Events: Events
  }
})()

Usage Examples

The default target is set to Firefox, and the settings file points to settings/framboise.yaml; therefore both flags are omitted in the following examples.

Run a single fuzzer module:

./framboise.py -fuzzer 1:WebGL

Run a specific configuration setup of a target:

./framboise.py -fuzzer 1:Canvas2D -setup inbound64-release

Run multiple fuzzing modules in multiple worker instances and restart the target once a crash occurred:

./framboise.py -fuzzer 1:MediaSource,1:WebVTT,1:MediaRecorder -worker 3 -restart

Run a testcase against the target:

./framboise.py -testcase ~/path/to/testcase.html

Simply launch the target:

./framboise.py -launch

Help Menu

usage: framboise.py [-h] [-fuzzer list] [-target name] [-setup name]
                    [-worker #] [-testcase file] [-launch] [-restart]
                    [-timeout #] [-websocket-port #] [-update name] [-list]
                    [-settings file] [-debug] [-max-commands #]
                    [-random-seed #] [-with-set-timeout] [-with-set-interval]
                    [-with-events] [-version]

Framboise Client

optional arguments:
  -h, --help          show this help message and exit
  -fuzzer list        syntax: weighting:module [,...] (default: None)
  -target name        target application (default: firefox)
  -setup name         target environment (default: default)
  -worker #           number of worker instances (default: 1)
  -testcase file      open target app with provided testcase (default: None)
  -launch             launch the target app only (default: False)
  -restart            restart crashed worker (default: False)
  -timeout #          timeout for reload (default: 0)
  -websocket-port #   WebSocket monitor port (default: None)
  -update name        run update script for target (default: None)
  -list               show a list of available modules (default: False)
  -settings file      custom settings file (default:
                      settings/framboise.darwin.yaml)
  -debug              print out JS errors (default: False)
  -max-commands #     maximum amount of commands (default: 100)
  -random-seed #      seed used for the PRNG (default: None)
  -with-set-timeout   make use of setTimeout() (default: False)
  -with-set-interval  make use of setInterval() (default: False)
  -with-events        make use of addEventListener() (default: False)
  -version            show program's version number and exit
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].