All Projects → aress31 → Swurg

aress31 / Swurg

Licence: apache-2.0
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Swurg

Spectral
A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3.
Stars: ✭ 876 (+831.91%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification, json
Kaizen Openapi Editor
Eclipse Editor for the Swagger-OpenAPI Description Language
Stars: ✭ 97 (+3.19%)
Mutual labels:  swagger, openapi, openapi3, json, yaml
Burpsuite Collections
BurpSuite收集:包括不限于 Burp 文章、破解版、插件(非BApp Store)、汉化等相关教程,欢迎添砖加瓦---burpsuite-pro burpsuite-extender burpsuite cracked-version hackbar hacktools fuzzing fuzz-testing burp-plugin burp-extensions bapp-store brute-force-attacks brute-force-passwords waf sqlmap jar
Stars: ✭ 1,081 (+1050%)
Mutual labels:  pentesting, burpsuite, burp-extensions, burp-plugin
Openapi.tools
A collection of Editors, Linters, Parsers, Code Generators, Documentation, Testing
Stars: ✭ 257 (+173.4%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+42014.89%)
Mutual labels:  swagger, openapi, openapi3, json
Full Stack Fastapi Couchbase
Full stack, modern web application generator. Using FastAPI, Couchbase as database, Docker, automatic HTTPS and more.
Stars: ✭ 243 (+158.51%)
Mutual labels:  swagger, openapi, openapi3, json
openapi-schemas
JSON Schemas for every version of the OpenAPI Specification
Stars: ✭ 22 (-76.6%)
Mutual labels:  swagger, openapi, openapi-specification, openapi3
Springdoc Openapi
Library for OpenAPI 3 with spring-boot
Stars: ✭ 1,113 (+1084.04%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Swagger meqa
Auto generate and run tests using swagger/OpenAPI spec, no coding needed
Stars: ✭ 151 (+60.64%)
Mutual labels:  swagger, openapi, restful-api, yaml
Oas Kit
Convert Swagger 2.0 definitions to OpenAPI 3.0 and resolve/validate/lint
Stars: ✭ 516 (+448.94%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Swagger Parser
Swagger Spec to Java POJOs
Stars: ✭ 468 (+397.87%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Full Stack Fastapi Postgresql
Full stack, modern web application generator. Using FastAPI, PostgreSQL as database, Docker, automatic HTTPS and more.
Stars: ✭ 7,635 (+8022.34%)
Mutual labels:  swagger, openapi, openapi3, json
Openapi Diff
Utility for comparing two OpenAPI specifications.
Stars: ✭ 208 (+121.28%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Redoc
📘 OpenAPI/Swagger-generated API Reference Documentation
Stars: ✭ 15,935 (+16852.13%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Safrs
SqlAlchemy Flask-Restful Swagger Json:API OpenAPI
Stars: ✭ 255 (+171.28%)
Mutual labels:  swagger, openapi, openapi3, json
Validator Badge
Validate your Swagger JSON/YAML today!
Stars: ✭ 158 (+68.09%)
Mutual labels:  swagger, restful-api, openapi3, openapi-specification
Swaggen
OpenAPI/Swagger 3.0 Parser and Swift code generator
Stars: ✭ 385 (+309.57%)
Mutual labels:  swagger, openapi, yaml, parser
Prance
Resolving Swagger/OpenAPI 2.0 and 3.0 Parser
Stars: ✭ 133 (+41.49%)
Mutual labels:  swagger, openapi, openapi3, parser
Swagger Ui
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
Stars: ✭ 21,279 (+22537.23%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification
Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+784.04%)
Mutual labels:  swagger, openapi, openapi3, openapi-specification

logo

bapp store lang license version bitcoin bitcoin cash ether

Swurg is a Burp Suite extension designed for OpenAPI testing.

The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic. When properly defined via OpenAPI, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interface descriptions have done for lower-level programming, the OpenAPI Specification removes guesswork in calling a service.

Use cases for machine-readable API definition documents include, but are not limited to: interactive documentation; code generation for documentation, clients, and servers; and automation of test cases. OpenAPI documents describe an API's services and are represented in either YAML or JSON formats. These documents may either be produced and served statically or be generated dynamically from an application.

- OpenAPI Initiative

Performing security assessment of OpenAPI-based APIs can be a tedious task due to Burp Suite (industry standard) lacking native OpenAPI parsing capabilities. A solution to this situation, is to use third-party tools (e.g. SOAP-UI) or to implement custom scripts (often on a per engagement basis) to handle the parsing of OpenAPI documents and integrate/chain the results to Burp Suite to use its first class scanning capabilities.

Swurg is an OpenAPI parser that aims to streamline this entire process by allowing security professionals to use Burp Suite as a standalone tool for security assessment of OpenAPI-based APIs.

Supported Features

  • Parse OpenAPI documents, formerly known as the Swagger specification, fully compliant with OpenAPI 2.0/3.0 Specifications (OAS). Supports both JSON and YAML formats.
  • OpenAPI documents can be parsed either from a supplied file or URL. The extension can fetch OpenAPI documents directly from a URL using the Send to Swagger Parser feature under the Target -> Site map context menu.
  • Requests can be sent to the Comparer, Intruder, Repeater, Scanner and Site map Burp tools.

Installation

Compilation

Windows & Linux

  1. Install gradle (https://gradle.org/)
  2. Download the repository.
$ git clone https://github.com/AresS31/swurg
$ cd .\swurg\
  1. Create the swurg jarfile:
$ gradle fatJar

Burp Suite settings

In Burp Suite, under the Extender/Options tab, click on the Add button and load the swurg-all jarfile.

Possible Improvements

  • [ ] Beautify the graphical user interface.
  • [ ] Enable cells editing to change API calls directly from the GUI.
  • [x] Further optimise the source code.
  • [ ] Implement support for authenticated testing (via user-supplied API-keys).
  • [ ] Improve the Param column by adding the type of parameters (e.g. inquery, inbody, etc.).
  • [ ] Increase the extension verbosity (via the bottom panel).

Dependencies

Third-party libraries

Swagger Parser:

The Swagger Parser library is required and automatically imported in this project.

Project information

In July 2016, after posting a request for improvement on the PortSwigger support forum, I decided to take the initiative and to implement a solution myself.

The extension is still in development, feedback, comments and contributions are therefore much appreciated.

One-time donation

  • Donate via Bitcoin : 15aFaQaW9cxa4tRocax349JJ7RKyj7YV1p
  • Donate via Bitcoin Cash : qqez5ed5wjpwq9znyuhd2hdg86nquqpjcgkm3t8mg3
  • Donate via Ether : 0x70bC178EC44500C17B554E62BC31EA2B6251f64B

License

Copyright (C) 2016 - 2018 Alexandre Teyar

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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