OWASP Noir 使用教程
1. 项目介绍
OWASP Noir 是一个开源的攻击面检测工具,它通过静态分析源代码来识别API端点和参数。Noir 支持多种编程语言和框架,为分析人员提供技术信息和在源代码分析过程中发现的的安全问题。它具备友好的管道和DevOps集成,提供多种输出格式(JSON、YAML、OAS spec)并与工具如curl和httpie兼容。
2. 项目快速启动
以下是在不同环境下快速启动OWASP Noir的步骤:
使用Homebrew安装
brew install noir
使用Snapcraft安装
sudo snap install noir
从源代码安装
- 安装Crystal语言
- 克隆仓库
git clone https://github.com/owasp-noir/noir.git
cd noir
- 安装依赖
shards install
- 构建项目
shards build --release --no-debug
- 复制二进制文件到系统路径
cp /bin/noir /usr/bin/
使用Docker
docker pull ghcr.io/owasp-noir/noir:main
3. 应用案例和最佳实践
以下是一个使用OWASP Noir进行扫描的示例:
noir -b <source_dir> -u https://testapp.internal.domains -f json
输出示例:
{
"url": "https://testapp.internal.domains/query",
"method": "POST",
"params": [
{
"name": "my_auth",
"value": "",
"param_type": "cookie",
"tags": []
},
{
"name": "query",
"value": "",
"param_type": "form",
"tags": [
{
"name": "sqli",
"description": "This parameter may be vulnerable to SQL Injection attacks",
"tagger": "Hunt"
}
]
}
],
"details": [
{
"code_paths": [
["path": "spec/functional_test/fixtures/crystal_kemal/src/testapp.cr", "line": 8]
]
}
],
"protocol": "http",
"tags": []
}
4. 典型生态项目
OWASP Noir 可以与多种开发框架和语言一起使用,以下是一些典型的生态项目:
- Crystal: 支持 Crystal 语言开发的框架,如Kemal、Lucky等。
- Go: 支持 Go 语言的框架,如Beego、Echo、Gin等。
- Python: 支持 Python 语言的框架,如Django、Flask、FastAPI等。
- Ruby: 支持 Ruby 语言的框架,如Rails、Sinatra、Hanami等。
- Php: 支持 Php 语言的开发。
- Java: 支持 Java 语言的框架,如Jsp、Spring等。
- Kotlin: 支持 Kotlin 语言的框架,如Spring等。
- JS: 支持 JavaScript 语言的框架,如Express、Restify等。
- Rust: 支持 Rust 语言的框架,如Axum、Rocket等。
- Elixir: 支持 Elixir 语言的框架,如Phoenix等。
- C#: 支持 C# 语言的框架,如ASP.NET MVC等。