RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services. For a given cloud service with an OpenAPI/Swagger specification, RESTler analyzes its entire specification, and then generates and executes tests that exercise the service through its REST API.
RESTler intelligently infers producer-consumer dependencies among request types from the Swagger specification. During testing, it checks for specific classes of bugs and dynamically learns how the service behaves from prior service responses. This intelligence allows RESTler to explore deeper service states reachable only through specific request sequences and to find more bugs.
RESTler is described in these peer-reviewed research papers:
If you use RESTler in your research, please cite the (default) ICSE’2019 paper (BibTeX).
RESTler was created at Microsoft Research and is still under active development.
Build Status
Setting Up RESTler
RESTler was designed to run on 64-bit machines with Windows or Linux.
Build Instructions
Prerequisites: Install Python 3.8.2 and .NET core SDK 3.1, for your appropriate OS.
Create a directory where you’d like to place the RESTler binaries:
mkdir restler_bin
Switch to the repo root directory and run the following Python script:
python ./build-restler.py --dest_dir <full path to restler_bin above>
Note: if you get nuget error NU1403 when building, a quick workaround is to clear your cache with this command
dotnet nuget locals all --clear
Binary-Drop Instructions
RESTler binary drops are coming soon.
Prerequisites: Install Python 3.8.2 and .NET core SDK 3.1 or higher, for your appropriate OS.
Using RESTler
RESTler runs in 4 main modes (in order):
Quick Start
For a quick intro with simple examples, see this Tutorial.
To quickly try RESTler on your API, see Quick Start.
Bugs Found By RESTler
There are currently two categories of bugs found by RESTler.
500
(“Internal Server Error”) is received, a bug is reported.When a bug is found, RESTler reports bugs triaged in bug buckets, and provides a replay log that can be used to reproduce the bug (see Replay).
Advanced Topics
For tips on using RESTler effectively, please see Best Practices and Improving Swagger Coverage.
See also these Frequently Asked Questions.
If you’re interested in using RESTler at scale as part of your CI/CD pipeline, check out the REST API Fuzz Testing self-hosted service.
shadow-rs is a Windows kernel rootkit written in Rust, demonstrating advanced techniques for kernel manipulation…
Extract and execute a PE embedded within a PNG file using an LNK file. The…
Embark on the journey of becoming a certified Red Team professional with our definitive guide.…
This repository contains proof of concept exploits for CVE-2024-5836 and CVE-2024-6778, which are vulnerabilities within…
This took me like 4 days (+2 days for an update), but I got it…
MaLDAPtive is a framework for LDAP SearchFilter parsing, obfuscation, deobfuscation and detection. Its foundation is…