Skip to content

Commit f8c4f8a

Browse files
authored
Merge pull request #506 from owasp-noir/improve-docs
docs: Enhance documentation with new sections and improved structure
2 parents d3bc588 + 5dbdf76 commit f8c4f8a

21 files changed

+229
-22
lines changed

Diff for: docs/_advanced/configuration.md

+6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ permalink: /configuration
66
layout: page
77
---
88

9+
## Configuration
10+
{: .d-inline-block }
11+
12+
Since (v0.16.0)
13+
{: .label .label-green }
14+
915
{% include toc.md %}
1016

1117
## Config Home Path

Diff for: docs/_advanced/deliver.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ nav_order: 2
55
layout: page
66
---
77

8-
{% include toc.md %}
9-
10-
## Introduction to Deliver
8+
## Deliver
119

1210
Devlier is a feature designed to transmit Endpoints discovered by Noir to other tools. Unlike Pipelines that use Output, it can forward information to proxy tools such as Caido, ZAP, and Burp, as well as to ElasticSearch. This functionality allows for easier security testing and simplifies finding and utilizing service Endpoints in a DevOps Pipeline.
1311

Diff for: docs/_advanced/diff.md

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ nav_order: 6
55
layout: page
66
---
77

8+
## Diff Mode
9+
{: .d-inline-block }
10+
11+
Since (v0.16.0)
12+
{: .label .label-green }
13+
814
Diff mode is a feature that analyzes and compares two source code paths using noir, enabling you to identify newly added, modified, or removed APIs. The base path specified with the `-b` flag serves as the reference point, while the source input provided with the `--diff-path` flag is used for comparison.
915

1016
```bash

Diff for: docs/_advanced/passive_scan.md

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ nav_order: 4
55
layout: page
66
---
77

8+
## Passive Scan
9+
{: .d-inline-block }
10+
11+
Since (v0.18.0)
12+
{: .label .label-green }
13+
814
A Passive Scan is a feature where additional actions are performed by the Detector to identify security issues according to scan rules. This functionality typically includes:
915

1016
* Regular Expression Matching: It uses regular expressions to match patterns that could indicate security vulnerabilities.

Diff for: docs/_advanced/passive_scan/community_rules.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ nav_order: 3
66
layout: page
77
---
88

9+
## Community Rules
10+
911
Community rules are managed in several repositories below. You can clone these repositories to the default rule path for use.
1012

1113
To clone the `noir-passive-rules` repository to the default rule path, use the following command:

Diff for: docs/_advanced/passive_scan/default_rules.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ nav_order: 2
66
layout: page
77
---
88

9+
## Default Rules
10+
911
The default rules are stored in the following paths based on your operating system:
1012

1113
| OS | Path |

Diff for: docs/_advanced/passive_scan/rule.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ nav_order: 1
66
layout: page
77
---
88

9+
## Passive Scan Rule
10+
911
```yaml
1012
id: rule-id
1113
info:

Diff for: docs/_advanced/tagger.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ nav_order: 3
55
layout: page
66
---
77

8-
{% include toc.md %}
8+
## Tagger
9+
{: .d-inline-block }
910

10-
## Introduction to Tagger
11+
Since (v0.14.0)
12+
{: .label .label-green }
1113

1214
The Tagger is a feature that adds tags to Endpoints, Params, etc., based on given conditions or logic when Noir analyzes source code. By using this feature, you can attach tag information that matches the characteristics of the Endpoints and Params. This helps analysts easily understand Endpoints or gain hints for the next security testing.
1315

Diff for: docs/_advanced/tips/community-articles.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ nav_order: 1
66
layout: page
77
---
88

9+
## Community Articles
10+
911
* [Hello Noir 👋🏼 by HAHWUL](https://www.hahwul.com/2023/08/03/hello-noir/)
1012
* [API Attack Surface Detection using Noir by DANA EPP](https://danaepp.com/api-attack-surface-detection-using-noir)
1113
* [Exploring OWASP Noir's PassiveScan by HAHWUL](https://www.hahwul.com/2024/11/03/passivescan-in-owasp-noir/)

Diff for: docs/_get_started/basic.md

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ nav_order: 2
55
layout: page
66
---
77

8+
## Basic Usage
9+
810
With noir, you can view the help documentation using the `-h` or `--help` flags.
911

1012
```bash

Diff for: docs/_get_started/installation/docker.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ toc: true
77
layout: page
88
---
99

10+
## Docker (GHCR)
11+
1012
Docker is a popular containerization platform that simplifies the deployment and management of applications by packaging them into containers. The GitHub Container Registry (GHCR) allows you to store and manage Docker container images within GitHub.
1113

1214
```bash

Diff for: docs/_get_started/installation/homebrew.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ toc: true
77
layout: page
88
---
99

10+
## Homebrew
11+
1012
Homebrew is the package manager for MacOS(or linux). On devices using homebrew, you can easily install/update using the brew command.
1113

1214
```shell

Diff for: docs/_get_started/installation/snapcraft.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ toc: true
77
layout: page
88
---
99

10+
## Snapcraft
11+
1012
Snapcraft is a powerful package manager for Linux that enables you to easily install and manage applications. It supports a wide range of distributions, making software installation simple and consistent.
1113

1214
Ensure you have Snap installed on your system. You can install Snap using your distribution's package manager. For example, on Ubuntu, you can run:

Diff for: docs/_get_started/installation/source.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@ toc: true
77
layout: page
88
---
99

10-
## Install Crystal-lang
10+
## Build Noir
11+
### Install Crystal-lang
1112

1213
> [https://crystal-lang.org/install/](https://crystal-lang.org/install/)
1314
14-
## Clone this repo
15+
### Clone this repo
1516
```bash
1617
git clone https://github.com/owasp-noir/noir
1718
cd noir
1819
```
1920

20-
## Build
21+
### Build
2122
```bash
2223
# Install Dependencies
2324
shards install

Diff for: docs/_get_started/output/curl.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Curl and HTTPie
33
parent: Output Formatting
44
has_children: false
5-
nav_order: 3
5+
nav_order: 4
66
layout: page
77
---
88

Diff for: docs/_get_started/output/more.md

+64-13
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,8 @@ nav_order: 4
66
layout: page
77
---
88

9-
## Open API Spec
10-
11-
```bash
12-
# noir -b . -f oas3
13-
# noir -b . -f oas2
14-
```
15-
16-
```json
17-
{"openapi":"3.0.0","info":{"title":"Generated by Noir","version":""},"paths":{"/":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[{"name":"x-api-key","in":"header"}]}},"/query":{"post":{"responses":{"200":{"description":"Successful response"}},"parameters":[{"name":"my_auth","in":"query"},{"name":"query","in":"formData"}]}},"/token":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[{"name":"client_id","in":"formData"},{"name":"redirect_url","in":"formData"},{"name":"grant_type","in":"formData"}]}},"/socket":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}},"/1.html":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}},"/2.html":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}}}}
18-
```
19-
20-
## Only-x
9+
## Only X
10+
### URL
2111
```bash
2212
noir -b . -f only-url
2313
# ...
@@ -27,4 +17,65 @@ noir -b . -f only-url
2717
# /socket
2818
# /1.html
2919
# /2.html
30-
```
20+
```
21+
22+
### Param
23+
```bash
24+
noir -b . -f only-param
25+
# ...
26+
# query
27+
# client_id
28+
# redirect_url
29+
# grant_type
30+
```
31+
32+
### Header
33+
```bash
34+
noir -b . -f only-header
35+
# ...
36+
# x-api-key
37+
# Cookie
38+
```
39+
40+
### Cookie
41+
```bash
42+
noir -b . -f only-cookie
43+
# ...
44+
# my_auth
45+
```
46+
47+
### Tag
48+
49+
```bash
50+
noir -b . -f only-tag -T
51+
# ...
52+
# sqli
53+
# oauth
54+
# websocket
55+
```
56+
57+
## Markdown
58+
59+
```bash
60+
noir -b . -f markdown-table
61+
```
62+
63+
```markdown
64+
| Endpoint | Protocol | Params |
65+
| -------- | -------- | ------ |
66+
| GET / | http | `x-api-key (header)` |
67+
| POST /query | http | `my_auth (cookie)` `query (form)` |
68+
| GET /token | http | `client_id (form)` `redirect_url (form)` `grant_type (form)` |
69+
| GET /socket | ws | |
70+
| GET /1.html | http | |
71+
| GET /2.html | http | |
72+
```
73+
74+
| Endpoint | Protocol | Params |
75+
| -------- | -------- | ------ |
76+
| GET / | http | `x-api-key (header)` |
77+
| POST /query | http | `my_auth (cookie)` `query (form)` |
78+
| GET /token | http | `client_id (form)` `redirect_url (form)` `grant_type (form)` |
79+
| GET /socket | ws | |
80+
| GET /1.html | http | |
81+
| GET /2.html | http | |

Diff for: docs/_get_started/output/openapi.md

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: Open API Spec
3+
parent: Output Formatting
4+
has_children: false
5+
nav_order: 3
6+
layout: page
7+
---
8+
9+
## Open API Spec (OAS)
10+
11+
```bash
12+
# noir -b . -f oas3
13+
# noir -b . -f oas2
14+
```
15+
16+
```json
17+
{
18+
"openapi": "3.0.0",
19+
"info": {
20+
"title": "Generated by Noir",
21+
"version": ""
22+
},
23+
"paths": {
24+
"/": {
25+
"get": {
26+
"responses": {
27+
"200": {
28+
"description": "Successful response"
29+
}
30+
},
31+
"parameters": [
32+
{
33+
"name": "x-api-key",
34+
"in": "header"
35+
}
36+
]
37+
}
38+
},
39+
"/query": {
40+
"post": {
41+
"responses": {
42+
"200": {
43+
"description": "Successful response"
44+
}
45+
},
46+
"parameters": [
47+
{
48+
"name": "my_auth",
49+
"in": "query"
50+
},
51+
{
52+
"name": "query",
53+
"in": "formData"
54+
}
55+
]
56+
}
57+
},
58+
"/token": {
59+
"get": {
60+
"responses": {
61+
"200": {
62+
"description": "Successful response"
63+
}
64+
},
65+
"parameters": [
66+
{
67+
"name": "client_id",
68+
"in": "formData"
69+
},
70+
{
71+
"name": "redirect_url",
72+
"in": "formData"
73+
},
74+
{
75+
"name": "grant_type",
76+
"in": "formData"
77+
}
78+
]
79+
}
80+
},
81+
"/socket": {
82+
"get": {
83+
"responses": {
84+
"200": {
85+
"description": "Successful response"
86+
}
87+
},
88+
"parameters": []
89+
}
90+
},
91+
"/1.html": {
92+
"get": {
93+
"responses": {
94+
"200": {
95+
"description": "Successful response"
96+
}
97+
},
98+
"parameters": []
99+
}
100+
},
101+
"/2.html": {
102+
"get": {
103+
"responses": {
104+
"200": {
105+
"description": "Successful response"
106+
}
107+
},
108+
"parameters": []
109+
}
110+
}
111+
}
112+
}
113+
```

Diff for: docs/_get_started/output/yaml.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ nav_order: 2
66
layout: page
77
---
88

9+
## YAML
10+
911
```bash
1012
noir -b . -f yaml --no-log
1113
```

Diff for: docs/_get_started/supported/language_and_frameworks.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ parent: Supported
66
layout: page
77
---
88

9+
## Language and Frameworks
10+
911
{% include toc.md %}
1012

1113
## Crystal

Diff for: docs/_get_started/supported/specification.md

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ parent: Supported
66
layout: page
77
---
88

9+
## Specification
10+
911
| Specification | Format | URL | Method | Param | Header | WS |
1012
|------------------------|---------|-----|--------|-------|--------|----|
1113
| OAS 2.0 (Swagger 2.0) | JSON ||||| X |

0 commit comments

Comments
 (0)