Code Monkey home page Code Monkey logo

cherrybomb's Introduction

cherry_bomb_v5_1

Stop half-done API specifications

Maintained by blstsecurity docs Discord Shield

๐Ÿ’ฃ What is Cherrybomb?

Cherrybomb is a CLI tool that helps you avoid undefined user behavior by validating your API specifications.

Our CLI tool is open source, enabling support from both the OpenAPI and Rust communities.

๐Ÿ”จ How does it work?

It takes in an OAS file, runs a series of checks on it to make sure everything is on par with the OAS, and outputs a detailed table with any alerts found, guiding you to the exact problem and location to help you solve it quickly.

It can also take in your logs and check them for business logic flaws.

๐Ÿพ Get Started

Installation

Using cURL

Linux/MacOS:
curl https://cherrybomb.blstsecurity.com/install	| /bin/bash

The script requires sudo permissions to move the cherrybomb bin into /usr/local/bin/.
(If you want to view the shell script(or even help to improving it - /scripts/install.sh)

Direct download

You can also download the binary file directly from our website.
This is a binary file and you DO NOT have to install Rust. If you use this method you should run this command:

mkdir ~/.cherrybomb

To create a .cherrybomb dir in the home directory.

Usage

After installing the CLI, verify it's working by running

cherrybomb --version

OpenAPI specification scan

cherrybomb swagger --file <PATH> --output <PATH> --verbosity <0/1/2>

Or

cherrybomb oas --file <PATH> --output <PATH> --verbosity <0/1/2>

Output example for verbosity level 1:

checks_table

Output example for verbosity level 0:

alerts_table

Generate Parameter Table

cherrybomb swagger --file <PATH> --param-table

Or

cherrybomb oas --file <PATH> --param-table

Table output example:

param_table

More features

First, we have a mapping module that relies on HTTP logs and builds a map of the API.
Start mapping your logs by running

cherrybomb map --file <LOGS_FILE_PATH> --output <OUTPUT_FILE_NAME> --hint <OAS FILE NAME>

If you don't have an HTTP log file, but you have Burp suite logs, you are in luck, go to the scripts folder, there is a convertor script over there.
If there are any other formats you need conversion scripts to, message us on the discord server.
For futher insights, you can view your map visually in our web based visualizer: https://www.blstsecurity.com/cherrybomb/Visualizer.

In the future, if you want to load new logs to an existing map file, run

cherrybomb load --file <LOGS_FILE_PATH> --map <MAPPED_FILE_PATH>

๐Ÿชฆ (!)Deprecation notice:

The Attacker and Decider modules will be deprecated(!) in our the next release(version 0.6). We are doing it since we have barely seen any usage of the modules thus far. Please let us know if you are indeed using those features and don't want them to be deprecated.

๐Ÿšง Roadmap

  • OAS 3 support
  • Passive checks
  • Parameter table
  • Improve installation script
  • Endpoints table
  • YAML support (currently only JSON is supported)
  • Swagger 2 support (currently only version 3 is supported)
  • Homebrew/APT support
  • Custom scans - optional checks + optional output + ignores(from alerts)
  • GraphQL schema support
  • Active scans
  • More passive scans
  • Swagger and logs validator (compares your logs with the swagger to verify correctness)

๐Ÿป Integration

For all methods of integrating with BLST, please go to the integrations folder.

๐Ÿ’ช Support

Documentation

Please read our documentation to understand the format of sessions our mapper needs to function correctly.

Get help

If you have any questions, please send us a message to [email protected].
You are also welcome to open an Issue here on GitHub.

๐Ÿค Contributing

Please talk to us over at our discord server to see where and how can you contribute to our project.
You can also find info about how to contribute to Cherrybomb here.

cherrybomb's People

Contributors

bachp avatar chainguns avatar chalmagean avatar deliciousbounty avatar dret avatar guyl99 avatar omerwow avatar royb99 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.