Skip to content

Releases: owasp-noir/noir

v0.13.0

07 Mar 14:59
ad18b11
Compare
Choose a tag to compare

What's Changed

  • 🎨 Lightweight LexerParser(MiniLexer) has been added for more accurate analysis.
  • ⚡️ Improve Analyzers (Java Spring and Golang Fiber, Echo, Gin)
  • 🎉 Support snapcraft
  • 🐞 Fixed bug

MiniLexer

We've added a Lightweight LexerParser for analyzing the syntax of source code to enable better analysis. It's currently implemented in Java and Golang, and although it's still in its infancy, we believe it will improve over time.

Snapcraft

Now we support installation via snapcraft :D

https://snapcraft.io/noir

Contributors

Thank you so much for contributing to noir ❤️
@k-sau @sm1ee @Dyrandy

Full Changelog: v0.12.2...v0.13.0

v0.12.2

03 Feb 12:16
654a25c
Compare
Choose a tag to compare

What's Changed

  • 🍀 Added --config flag for file-based configuration.
  • ⚡️ Improve OAS3 Analyzer and optimize_endpoints func
  • 🎨 Improve code style and Added Lexer object for better recognition.
  • 🐞 Fixed bugs in GitHub workflows

Full Changelog: v0.12.1...v0.12.2

v0.12.1

12 Jan 14:31
5349c7f
Compare
Choose a tag to compare

What's Changed

  • Add new output formats
    • only-url only-param only-header only-cookie
    • jsonl
    • e.g noir -b my_app -f only-param
  • Update help messages

Full Changelog: v0.12.0...v0.12.1

Why was the only-* formats added?

Sometimes, we may want to extract specific values from source code. To facilitate this, we have introduced the only-* format. For example, when analyzing source code for fuzzing, there may be a need to obtain a list of parameters. In such cases, you can easily extract them using the only-param format without the need for additional parsing.

v0.12.0

31 Dec 07:40
56cb947
Compare
Choose a tag to compare

What's Changed

New Features

  • FileAnalyzer and Hooks:
    • Introducing a powerful addition to enhance detection capabilities through comprehensive file content analysis.
    • The FileAnalyzer operates independently of the detected language or framework, enabling file-based scans. This feature utilizes Hooks to perform advanced actions such as detecting URLs within strings, Base64 decoding, and more. These Hooks contribute to additional endpoint identification, augmenting the overall analysis.
  • go-fiber detector & analyzer: Added support for the go fiber web framework, expanding compatibility.

Enhancements

  • --include-path Flag: This flag also reveals the original source code file of detected endpoints when used.
  • In JSON/YAML format, the Details section allows you to explore the original source code file of detected endpoints.

--include-path flag

Details in JSON Result

Analyzer Improvements

  • JS Express Analyzer: Enhanced for more accurate and insightful results.
  • Spring (Java/Kotlin) Analyzer: Improved precision for a better understanding of Spring framework projects.

Removal

  • --scope Flag: Deprecated (It was a flag that actually meant nothing.)

Code Quality

  • Code Improvements: Refined codebase for better quality. and more test codes

User Experience

  • CLI Banner Update: Refreshed for a more appealing appearance.

Full Changelog: v0.11.0...v0.12.0

v0.11.0

06 Dec 15:28
54cdd49
Compare
Choose a tag to compare

What's Changed

  • 👋🏼 Add new detectors and analyzers
    • Ruby Hanami
    • Elixir Phoenix
    • Crystal Lucky
  • 🍪 Add cookie parameter type
  • 🖥️ Improve logger
    • It expresses the parameters that exist in the endpoint more beautifully.
    • Debug logs have been added to many more.
  • 🏁 Enhance detector performance
    • The existing Fiber-based parallel processing has been changed to Fiber+Channel structure.
    • As a result, it has increased stability while maintaining the same speed.
    • Add --concurrency flag
  • 🔭 Improve testcodes
  • 🐞 Fixed bugs

Full Changelog: v0.10.0...v0.11.0

v0.10.0

26 Oct 15:36
2b33d79
Compare
Choose a tag to compare

What's Changed

  • Add rust-axum detector/analyzer (#138)
  • Add --use-matchers and --use-filters flags for Deliver (#137)
  • Fixed bugs & Improve test codes

Full Changelog: v0.9.1...v0.10.0

Matchers and Filters for Deliver

Matchers

The --use-matchers flag allows you to specify a condition that must be met for a URL to be delivered.
For example, you could use this flag to deliver only those URLs that include the string "/v1/myapi/".

Filters

The --use-filters flag allows you to specify a condition that must not be met for a URL to be delivered
For example, you could use this flag to exclude all URLs that contain the string "/admin".

Example

noir -b . -u https://www.hahwul.com \
        --send-proxy http://localhost:8090 \
        --use-matchers "/update" \
        --use-matchers "/socket"

v0.9.1

06 Oct 16:06
35147d4
Compare
Choose a tag to compare

What's Changed

  • Fixed nil-cast bug in oas2,oas3,raml analyzers (#126 / @exhaustedMutex)
    • Add test code for nil-cast issue (functional_test/fixtures/oas3/nil_cast/)
    • Improve debug logs
  • Fixed bug in js-express (#126 / @exhaustedMutex)
  • Fixed typo in Deliver initialize (#132 / @HolyBugx)
    • Add test code for header in deliver

Full Changelog: v0.9.0...v0.9.1

v0.9.0

28 Sep 15:48
c61d50a
Compare
Choose a tag to compare

What's Changed

  • FastAPI Detector&Analyzer (by @ksg97031 👍)
    • Support to URL, Method, Param, Header, WebSocket
    • And a thorough test codes
  • ElasticSearch Deliver was added. (flag: --send-es)
  • YAML has been added to the output format.

Full Changelog: v0.8.0...v0.9.0

Showcase

FastAPI Detector & Analyzer

noir -b ./fastapi_app

Flag: --send-es (ES Deliver)

# noir -b <BASE-PATH> --send-es http://<ES-ENDPOINT>/<INDEX>/<TYPE>
noir -b ./app/ --send-es http://localhost:9200/noir/url


ES search result

Flag: -f yaml

noir -b ./kemal -f yaml

v0.8.0

26 Sep 12:02
97eaa33
Compare
Choose a tag to compare

What's Changed

  • Add new flag
    • Add --with-headers flag for Delivers
  • Add new output formats
    • oas2 e.g noir -b . -f oas2
    • oas3 e.g noir -b . -f oas3
  • Improve codes
    • Add new type in CodeLocator
      • With the addition of CodeLocator's type inference, more precise code analysis is now possible.
      • In this patch, when there are multiple API Spec documents within the analysis directory, all of them can be processed.
    • The output-related logic has been moved to an object called output_builder from noir model.
      • With this change, adding output type has become easier.
      • Now when using the -o flag to save a file, only the results of output_builder are saved.

Full Changelog: v0.7.3...v0.8.0

--with-headers flag

The --with-headers flag supports multiple flags and allowing you to add arbitrary headers in commands like --send-proxy. Any headers added through this flag can override existing header information obtained during source code analysis, using them as new headers.

Single

noir -b ./source --send-proxy http://localhost:8090 --with-headers "X-API-Key: ABCD"

Multiple

noir -b ./source --send-proxy http://localhost:8090 \
    --with-headers "X-API-Key: ABCD" \
    --with-headers "Authentication: ABCD"

v0.7.3

21 Sep 14:37
6276ecc
Compare
Choose a tag to compare

What's Changed

  • Add ZAP Deliver Model
  • Fixed #102 bug in OAS2 Analyzer

Full Changelog: v0.7.2...v0.7.3