Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.17.0 #378

Merged
merged 93 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
6b4b250
chore(deps): Bump github.com/gofiber/fiber/v2
dependabot[bot] Jul 1, 2024
98748c4
Merge pull request #339 from owasp-noir/dependabot/go_modules/spec/fu…
hahwul Jul 2, 2024
5b0c82a
chore: Add dependabot configuration
hahwul Jul 2, 2024
2119903
Merge pull request #340 from owasp-noir/add-dependabot-yml
hahwul Jul 3, 2024
608b987
🐛 Fixed bug in logger
hahwul Jul 3, 2024
f07f08b
chore: Improve logging of detected technologies and code analysis start
hahwul Jul 3, 2024
ac306d5
refactor: Colorize request method based on endpoint method
hahwul Jul 3, 2024
8482621
refactor: Add newline before request URL in OutputBuilderCommon
hahwul Jul 3, 2024
3f61b2a
refactor: Update OutputBuilderCommon to display headers and cookies i…
hahwul Jul 3, 2024
bafa20a
Merge pull request #342 from owasp-noir/improve-plain-output
hahwul Jul 5, 2024
85531a7
Add documentation with jekyll
hahwul Jul 6, 2024
69e1514
feat: Add OWASP Noir logo to the website
hahwul Jul 6, 2024
64df6e9
feat: Add custom footer to the website
hahwul Jul 6, 2024
089c470
refactor: Update documents
hahwul Jul 6, 2024
7216e24
refactor: Update documents
hahwul Jul 6, 2024
0233971
refactor: Update permalink for configuration and get_started pages
hahwul Jul 6, 2024
46d902b
refactor: Update footer link text and URL
hahwul Jul 6, 2024
b731f48
Add image in basic
hahwul Jul 6, 2024
43bf6d7
refactor: Update documentation and code formatting
hahwul Jul 6, 2024
2101d54
refactor: Update navigation order in configuration and tips pages
hahwul Jul 6, 2024
1481159
refactor: Update table of contents in documentation files
hahwul Jul 6, 2024
0a3a294
Add favicon
hahwul Jul 6, 2024
e076514
Merge pull request #343 from owasp-noir/add-documentation
hahwul Jul 6, 2024
d645d45
Update
hahwul Jul 6, 2024
5e16984
Fixed?
hahwul Jul 6, 2024
bb79f8b
Update workflow
hahwul Jul 6, 2024
b8ae0ed
Update config
hahwul Jul 6, 2024
dbee871
chore: Update Ruby version and bundler cache in GitHub workflow
hahwul Jul 6, 2024
feb2536
Update
hahwul Jul 6, 2024
5452cbc
chore: Update Ruby version and bundler cache in GitHub workflow
hahwul Jul 6, 2024
84ac302
chore: Update Ruby version and bundler cache in GitHub workflow
hahwul Jul 6, 2024
574d8d8
Update documents
hahwul Jul 6, 2024
23b5899
chore: Add Docker (GHCR) in Installation
hahwul Jul 7, 2024
930f744
Update configuration file with default values (#348)
hahwul Jul 7, 2024
89ba468
chore: Add shell completion documentation (#350)
hahwul Jul 7, 2024
d49d4f4
Merge pull request #354 from owasp-noir/add-configuration-doc
hahwul Jul 7, 2024
a3cf88c
Merge pull request #355 from owasp-noir/add-shellcompletion-docs
hahwul Jul 7, 2024
0da64a4
chore: Update file structure for get_started and advanced sections
hahwul Jul 8, 2024
4b9594b
Merge pull request #356 from owasp-noir/redesign-struct-docs
hahwul Jul 8, 2024
edfc15d
chore: Update file structure for get_started and advanced sections
hahwul Jul 8, 2024
bf2d63e
Documentaion for Supported (#349)
hahwul Jul 9, 2024
9e69b51
Merge pull request #357 from owasp-noir/issue-349
hahwul Jul 9, 2024
2081e31
chore: Update file structure for get_started and advanced sections
hahwul Jul 9, 2024
6dffe68
chore: Update Docker image tag to latest version
hahwul Jul 9, 2024
2139b31
chore: Add mermaid and Intoduction doc
hahwul Jul 10, 2024
fc4beda
chore: Update OutputBuilder to Endpoints in introduction.md
hahwul Jul 10, 2024
5e2e403
Merge pull request #358 from owasp-noir/docs-introduction
hahwul Jul 10, 2024
c620d1b
chore: Add image to introduction.md
hahwul Jul 10, 2024
fe757f2
chore: Update mermaid version to 10.9.1 in _config.yml
hahwul Jul 10, 2024
7302242
chore: Update image paths in basic.md and introduction.md
hahwul Jul 10, 2024
c35b390
chore: Add unit tests for http_symbols, json, and yaml utils
hahwul Jul 10, 2024
1c42f79
chore: Update contributing guidelines and documents
hahwul Jul 10, 2024
4df5e6e
refactor: Refactor and rename analyzer files and functions
ksg97031 Jun 22, 2024
f895070
refactor: Improve regex match to ensure proper matching from current …
ksg97031 Jul 11, 2024
6f717a6
Merge pull request #359 from owasp-noir/improve-test-codes
hahwul Jul 11, 2024
9184286
Merge pull request #360 from owasp-noir/improve-contributing
hahwul Jul 11, 2024
d3e115f
chore: Add parsing logic for application.properties
ksg97031 Jul 11, 2024
f5ffc21
Update CONTRIBUTING.md
hahwul Jul 11, 2024
5f81950
Merge pull request #362 from owasp-noir/update-contributing
hahwul Jul 11, 2024
2439c26
refactor: Use anchored regex options in minilexers for match methods
ksg97031 Jul 14, 2024
4c59882
Update diff mode doc (#352)
hahwul Jul 14, 2024
bbadb56
chore: Update basic (#345)
hahwul Jul 14, 2024
63bf758
Merge pull request #363 from owasp-noir/docs-diff-mode
hahwul Jul 14, 2024
4a65d87
Merge pull request #364 from owasp-noir/docs-basic
hahwul Jul 14, 2024
60311aa
chore: Update Tagger documentation (#346)
hahwul Jul 16, 2024
f03fc69
Merge pull request #365 from owasp-noir/docs-tagger
hahwul Jul 16, 2024
b89b41d
chore: Update navigation order in community articles and shell comple…
hahwul Jul 16, 2024
771eb23
Merge pull request #366 from owasp-noir:add-tips-articles
hahwul Jul 16, 2024
a26586f
📝 chore: Update Devlier documentation
hahwul Jul 17, 2024
a39db0c
Merge pull request #367 from owasp-noir/doc-deliver
hahwul Jul 17, 2024
4b18ca8
chore: Add jekyll-securitytxt plugin to Gemfile
hahwul Jul 17, 2024
271acbe
chore: Update canonical URL for security.txt
hahwul Jul 17, 2024
d78dd0f
Merge pull request #368 from owasp-noir:add-securitytxt
hahwul Jul 17, 2024
3240fdd
Improve diff module OutputBuilder
hahwul Jul 20, 2024
cc10b97
chore: Update crystal-version in ci.yml to include 1.13.1
hahwul Jul 20, 2024
93224a4
chore: Update print_json and print_yaml methods in OutputBuilderDiff
hahwul Jul 20, 2024
9cbdbab
Merge pull request #369 from owasp-noir/improve-diff-result
hahwul Jul 21, 2024
6fef6f7
Merge pull request #370 from owasp-noir/bump-to-ci
hahwul Jul 21, 2024
e33833a
refactor: Update logger prefixes to use Unicode symbols
hahwul Jul 21, 2024
246be2b
Add logging to measure the time taken for the scan to complete.
hahwul Jul 21, 2024
bb70625
refactor: Update logger prefixes to use Unicode symbols
hahwul Jul 22, 2024
c98ef3e
refactor: Update logger
hahwul Jul 22, 2024
0b1e72a
refactor: Update logger
hahwul Jul 22, 2024
b1603a6
refactor: Update logger message indentation
hahwul Jul 22, 2024
0731a14
Merge pull request #372 from owasp-noir/improve-logger
ksg97031 Jul 23, 2024
877c783
Update
hahwul Jul 30, 2024
c8dd4d9
Update docs and readme
hahwul Jul 30, 2024
8c0604a
Merge pull request #374 from owasp-noir/update-docs-and-readme
hahwul Jul 30, 2024
e8bea97
refactor: Update image source in README.md
hahwul Jul 30, 2024
12b23cb
chore: Update version to 0.17.0
hahwul Jul 30, 2024
874b456
feat: Add support for printing tags in the only-tag output format
hahwul Jul 30, 2024
64193ee
Merge pull request #377 from owasp-noir/add-only-tag-format
hahwul Jul 31, 2024
3c76bbe
Merge pull request #375 from owasp-noir/release/version-bump
hahwul Jul 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If applicable, add screenshots to help explain your problem.

**Versions**
- OS: [e.g. macos, linux]
- Version [e.g. v0.16.1]
- Version [e.g. v0.17.0]

**Additional context**
Add any other context about the problem here.
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
updates:
- package-ecosystem: docker
directory: "/"
schedule:
interval: daily
time: "20:00"
open-pull-requests-limit: 10
target-branch: "dev"
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
crystal-version: [1.10.1, 1.11.2, 1.12.2]
crystal-version: [1.10.1, 1.11.2, 1.12.2, 1.13.1]
steps:
- uses: actions/checkout@v4
- uses: MeilCli/setup-crystal-action@v4
Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["dev"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0
with:
ruby-version: '3.2' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
working-directory: docs # Needed if your Gemfile is not in the root directory
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
working-directory: docs
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v3
with:
path: docs/_site

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
/docs/
/lib/
/bin/
/.shards/
*.dwarf
.DS_Store
.vscode

# Ignore the public directory for Jekyll
/docs/_site/
/docs/.jekyll-cache/
33 changes: 31 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,24 @@ Thank you for considering contributing to our project! Here are some guidelines
4. Completion
- That's it! You're done. Await feedback and further instructions from the maintainers.

![](https://github.com/hahwul/noir/assets/13212227/23989dab-6b4d-4f18-904f-7f5cfd172b04)
```mermaid
graph TD
subgraph Forked Branches
fork1["forked branch 1"]
fork2["forked branch 2"]
fork3["forked branch 3"]
end
fork1 --> dev["dev branch"]
fork2 --> dev
fork3 --> dev

dev --> main["main branch"]
dev --> deployments["documentation deployments (https://owasp-noir.github.io)"]

main -->|release| homebrew["homebrew"]
main -->|release| snapcraft["snapcraft"]
main -->|release| docker["docker (ghcr)"]
```

## 🛠️ Building and Testing
### Clone and Install Dependencies
Expand Down Expand Up @@ -59,4 +76,16 @@ ameba --fix
- models: Contains everything related to models, such as classes and structures.
- noir.cr: Main file and command-line parser.

Feel free to reach out to us if you have any questions or need further assistance!
Feel free to reach out to us if you have any questions or need further assistance!

## Documents contributing

Please note that [our web page](https://owasp-noir.github.io/noir/) operates based on the dev branch. If you make any changes, kindly send a Pull Request (PR) to the dev branch.

To ensure a smooth integration of your contributions, please follow these steps:

* Fork the repository and create your feature branch from dev.
* Make your changes, ensuring they are thoroughly tested.
* Submit your PR to the dev branch for review.

By doing so, you'll help us keep our project up-to-date and well-organized. Your efforts are greatly appreciated, and we're excited to see what you'll bring to the project!
76 changes: 14 additions & 62 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,21 @@
</p>

<p align="center">
<a href="#key-features">Key Features</a> •
<a href="#available-support-scope">Available Support Scope</a> •
<a href="#installation">Installation</a> •
<a href="https://owasp-noir.github.io/noir/">Documentation</a> •
<a href="#available-support-scope">Available Support Scope</a> •
<a href="#usage">Usage</a> •
<a href="#contributing">Contributing</a>
</p>

## Key Features
- Automatically identify language and framework from source code.
- Find API endpoints and web pages through code analysis.
- Load results quickly through interactions with proxy tools such as ZAP, Burpsuite, Caido and More Proxy tools.
- That provides structured data such as JSON and YAML for identified Attack Surfaces to enable seamless interaction with other tools. Also provides command line samples to easily integrate and collaborate with other tools, such as curls or httpie.

- Identify API endpoints and parameters from source code.
- Support various source code languages and frameworks.
- Provide analysts with technical information and security issues identified during source code analysis.
- Friendly pipeline & DevOps integration, offering multiple output formats (JSON, YAML, OAS spec) and compatibility with tools like curl and httpie.
- Friendly Offensive Security Tools integration, allowing usage with tools such as ZAP and Caido, Burpsuite.
- Generate elegant and clear output results.

## Available Support Scope

Expand Down Expand Up @@ -135,70 +138,17 @@ docker pull ghcr.io/owasp-noir/noir:main
```

## Usage

```bash
noir -h
```

```
USAGE: noir <flags>

FLAGS:
BASE:
-b PATH, --base-path ./app (Required) Set base path
-u URL, --url http://.. Set base url for endpoints

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
--set-pvalue VALUE Specifies the value of the identified parameter
--include-path Include file path in the plain result
--no-color Disable color output
--no-log Displaying only the results

TAGGER:
-T, --use-all-taggers Activates all taggers for full analysis coverage
--use-taggers VALUES Activates specific taggers (e.g., --use-taggers hunt,oauth)
--list-taggers Lists all available taggers

DELIVER:
--send-req Send results to a web request
--send-proxy http://proxy.. Send results to a web request via an HTTP proxy
--send-es http://es.. Send results to Elasticsearch
--with-headers X-Header:Value Add custom headers to be included in the delivery
--use-matchers string Send URLs that match specific conditions to the Deliver
--use-filters string Exclude URLs that match specified conditions and send the rest to Deliver

DIFF:
--diff-path ./app2 Specify the path to the old version of the source code for comparison

TECHNOLOGIES:
-t TECHS, --techs rails,php Specify the technologies to use
--exclude-techs rails,php Specify the technologies to be excluded
--list-techs Show all technologies

CONFIG:
--config-file ./config.yaml Specify the path to a configuration file in YAML format
--concurrency 100 Set concurrency
--generate-completion zsh Generate Zsh/Bash completion script

DEBUG:
-d, --debug Show debug messages
-v, --version Show version
--build-info Show version and Build info

OTHERS:
-h, --help Show help
```

Example
```bash
noir -b . -u https://testapp.internal.domains -T
noir -b <source_dir>
```

![](https://github.com/owasp-noir/noir/assets/13212227/4e69da04-d585-4745-9cc7-ef6e69e193b0)
![](/docs/images/get_started/basic.png)

JSON Result
```
Expand Down Expand Up @@ -242,6 +192,8 @@ noir -b . -u https://testapp.internal.domains -f json -T
}
```

For more details, please visit our [documentation](https://owasp-noir.github.io/noir/) page.

## Contributing
Noir is open-source project and made it with ❤️
if you want contribute this project, please see [CONTRIBUTING.md](./CONTRIBUTING.md) and Pull-Request with cool your contents.
Expand Down
12 changes: 12 additions & 0 deletions docs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
source 'https://rubygems.org'

gem "jekyll", "~> 4.3.3" # installed by `gem jekyll`
# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2

# Theme
gem "just-the-docs"

# Plugins
group :jekyll_plugins do
gem "jekyll-securitytxt"
end
93 changes: 93 additions & 0 deletions docs/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
colorator (1.1.0)
concurrent-ruby (1.3.3)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.26.1-arm64-darwin)
rake (>= 13)
google-protobuf (4.26.1-x86_64-linux)
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.5)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-securitytxt (1.0.1)
jekyll
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
just-the-docs (0.8.2)
jekyll (>= 3.8.5)
jekyll-include-cache
jekyll-seo-tag (>= 2.0)
rake (>= 12.3.1)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (6.0.0)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.1)
strscan
rouge (4.2.1)
safe_yaml (1.0.5)
sass-embedded (1.77.1-arm64-darwin)
google-protobuf (>= 3.25, < 5.0)
sass-embedded (1.77.1-x86_64-linux-gnu)
google-protobuf (>= 3.25, < 5.0)
strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.5.0)
webrick (1.8.1)

PLATFORMS
arm64-darwin
x86_64-linux

DEPENDENCIES
jekyll (~> 4.3.3)
jekyll-securitytxt
just-the-docs

BUNDLED WITH
2.5.3
Loading
Loading