All Projects → blst-security → firecracker

blst-security / firecracker

Licence: Apache-2.0 license
Stop half-done API specifications! Cherrybomb is a CLI tool that helps you avoid undefined user behaviour by validating your API specifications.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to firecracker

Sherlock
This script is designed to help expedite a web application assessment by automating some of the assessment steps (e.g., running nmap, sublist3r, metasploit, etc.)
Stars: ✭ 36 (-91.78%)
Mutual labels:  cybersecurity, web-security, websecurity, web-sec-scanner
HibiAPI
一个实现了多种常用站点的易用化API的程序 / A program that implements easy-to-use APIs for a variety of commonly used sites.
Stars: ✭ 427 (-2.51%)
Mutual labels:  openapi, openapi3
rawsec-cybersecurity-inventory
An inventory of tools and resources about CyberSecurity that aims to help people to find everything related to CyberSecurity.
Stars: ✭ 153 (-65.07%)
Mutual labels:  cybersecurity, cyber
haiti
🔑 Hash type identifier (CLI & lib)
Stars: ✭ 287 (-34.47%)
Mutual labels:  cybersecurity, cyber
whook
Build strong and efficient REST web services.
Stars: ✭ 18 (-95.89%)
Mutual labels:  openapi, openapi3
openapi-generator-go
An opinionated OpenAPI v3 code generator for Go. Use this to generate API models and router scaffolding.
Stars: ✭ 42 (-90.41%)
Mutual labels:  openapi, openapi3
n26-api
Unofficial N26 Bank API documentation
Stars: ✭ 41 (-90.64%)
Mutual labels:  openapi, openapi3
openapi-eller
Generate OpenAPI v3 clients and servers from the command line
Stars: ✭ 19 (-95.66%)
Mutual labels:  openapi, openapi3
swaggerhub-cli
SwaggerHub CLI
Stars: ✭ 28 (-93.61%)
Mutual labels:  openapi, openapi3
openapimux
Open API router in go
Stars: ✭ 21 (-95.21%)
Mutual labels:  openapi, openapi3
openapi-petstore
The pet store sample
Stars: ✭ 35 (-92.01%)
Mutual labels:  openapi, openapi3
openapi
OpenAPI 3 Specification for golang
Stars: ✭ 18 (-95.89%)
Mutual labels:  openapi, openapi3
swagger-converter
OpenAPI/Swagger 2.0 to OpenAPI 3.0 Converter WebService
Stars: ✭ 58 (-86.76%)
Mutual labels:  openapi, openapi3
oas
OpenAPI Spec builder in go
Stars: ✭ 15 (-96.58%)
Mutual labels:  openapi, openapi3
ogen
OpenAPI v3 code generator for go
Stars: ✭ 436 (-0.46%)
Mutual labels:  openapi, openapi3
OpenAlchemy
Define SQLAlchemy models using the OpenAPI specification.
Stars: ✭ 39 (-91.1%)
Mutual labels:  openapi, openapi3
apiclarity
Reconstruct Open API Specifications from real-time workload traffic seamlessly.
Stars: ✭ 290 (-33.79%)
Mutual labels:  openapi, api-security
intellij-openapi-generator
Intellij Plugin for openapi-generator
Stars: ✭ 73 (-83.33%)
Mutual labels:  openapi, openapi3
openapi4j
OpenAPI 3 parser, JSON schema and request validator.
Stars: ✭ 92 (-79%)
Mutual labels:  openapi, openapi3
Unchase.OpenAPI.Connectedservice
📜 Visual Studio extension to generate OpenAPI (Swagger) web service reference.
Stars: ✭ 69 (-84.25%)
Mutual labels:  openapi, openapi3

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 oas --file <PATH> --config <PATH> --verbosity <0/1/2> --format <cli/txt/json> --output <PATH>

Output example for verbosity level 1:

checks_table

Output example for verbosity level 0:

alerts_table

Generate Parameter Table

cherrybomb param-table --file <PATH> --name <SINGLE PARAM NAME(OPTIONAL)>

Table output example:

param_table

Generate Endpoint Table

cherrybomb ep-table --file <PATH> --name <SINGLE PARAM NAME(OPTIONAL)>

Table output example:

ep_table

Configuration options:

You can configure the OAS scan using the config.json file in your .cherrybomb director that we create by default in your home path(after one scan at least or downloading using the install script).

Go through only part of the checks

Full scan:

{
  "scan_type":"Full",
	...
}

Only run the server url and the default response checks:

{
  "scan_type":["SERRVER URL","DEFAULT RESPONSE"],
	...
}

Fail or not when the highest alert level is info

{
  "fail_on_info":true,
	...
}

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)
  • Custom scans - optional checks + optional output
  • Ignore alerts + don't fail on info
  • More passive checks
  • Swagger 2 support (currently only version 3 is supported)
  • Homebrew/APT support
  • GraphQL schema support
  • Active 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] or ask us on our discord server.
You are also welcome to open an Issue here on GitHub.

🤝 Contributing

You can find ciontribution options from our open issues, you should look for the "More passive checks" issue(it's a great issue to start from). You can also find info about contributing new checks to Cherrybomb here.
If you have any question or need any help talk to us over at our discord server to see where and how can you contribute to our project.

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].