Releases: owasp-noir/noir
v0.13.0
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
Contributors
Thank you so much for contributing to noir ❤️
@k-sau @sm1ee @Dyrandy
Full Changelog: v0.12.2...v0.13.0
v0.12.2
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
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
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
What's Changed
- 👋🏼 Add new detectors and analyzers
- Ruby Hanami
- Elixir Phoenix
- Crystal Lucky
- 🍪 Add cookie parameter type
- 🖥️ Improve logger
- 🏁 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
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
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
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
Flag: -f yaml
noir -b ./kemal -f yaml
v0.8.0
What's Changed
- Add new flag
- Add
--with-headers
flag for Delivers
- Add
- Add new output formats
- oas2
e.g noir -b . -f oas2
- oas3
e.g noir -b . -f oas3
- oas2
- 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.
- Add new type in CodeLocator
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"