Hello Noir ππΌ
Noir partnered with OWASP in June 2024 and has since become OWASP Noir. Consequently, I have updated some parts of this post to reflect this change.
Hi all! I am excited to announce the release of my toy project called βNoirβ ππ
Noir is a source code analysis tool that identifies API endpoints, methods, parameters, and more within the source code, providing various formats of output. Today, Iβll give you a brief description of this tool.
Installation
Currently, installations are available through Homebrew and source code-based installations. Please refer to the following commands.
Homebrew
brew install noir
From Source
# Install Crystal-lang
# https://crystal-lang.org/install/
# Clone this repo
git clone https://github.com/owasp-noir/noir
cd noir
# Install Dependencies
shards install
# Build
shards build --release --no-debug
# Copy binary
cp ./bin/noir /usr/bin/
Basic
The βBasicβ related flags refer to essential flags for analysis. You can set the base directory, URL, and scope for the analysis.
Basic:
-b PATH, --base-path ./app (Required) Set base path
-u URL, --url http://.. Set base url for endpoints
The β-bβ flag is required, and it specifies the base directory for analysis. By using the β-bβ option, you can analyze the source code directory. By default, it analyzes the technologies used within that directory and operates the engine associated with each technology to perform the source code analysis.
noir -b <BASE-PATH>
Output Formats
The βOutputβ related flags allow you to configure options for formatting and logging related to the output.
Output:
-f FORMAT, --format json Set output format
* plain yaml json jsonl markdown-table
* curl httpie oas2 oas3
* only-url only-param only-header only-cookie
-o PATH, --output out.txt Write result to file
# Plain
noir -b . -u http://localhost:3000
# Curl
noir -b . -u http://localhost:3000 -f curl
# HTTPie
noir -b . -u http://localhost:3000 -f httpie
# JSON
noir -b . -u http://localhost:3000 -f json
# Markdown table
noir -b . -u http://localhost:3000 -f markdown-table
Example - Curl Format
Delivers
Through the βDeliversβ subflags, you can establish interactions with other tools.
Deliver:
--send-req Send the results to the web request
--send-proxy http://proxy.. Send the results to the web request via http proxy
Noir to ZAP
Support Targets
https://owasp-noir.github.io/noir/supported
Final Remarks
Although there is still room for improvement, I am committed to making steady progress. So, please keep your expectations high!