关于Noir
Noir是何使一款功能强大的代码安全检测工具,在该工具的用N源代帮助下,广大研究人员能够轻松从源代码层面检测目标应用程序的从测攻潜在攻击面。
功能介绍
1、码检从源代码自动识别编程语言和框架;
2、击面通过代码分析查找API终端节点和网站页面;
3、何使通过与ZAP、用N源代Burpsuite、从测攻Caido和More proxy工具等代理工具的码检交互,快速加载分析结果;
4、IT技术网击面支持为已成功识别的何使攻击面提供结构化结果数据,例如JSON和HAR等,用N源代以实现与其他工具的从测攻无缝交互;
5、提供了命令行使用样例,码检以便轻松地与其他工具(如curls或httpie)集成和协作;
工具支持的击面可用范围
终端节点实体
1、路径Path
2、方法Method
3、参数Param
4、网站头Header
5、协议Protocol(例如ws)
语言和框架
语言
框架
URL
Method
Param
Header
WS
Go
Echo
✅
✅
✅
✅
X
Go
Gin
✅
✅
✅
✅
X
Python
Django
✅
X
X
X
X
Python
Flask
✅
X
X
X
X
Ruby
Rails
✅
✅
✅
✅
X
Ruby
Sinatra
✅
✅
✅
✅
X
Php
✅
✅
✅
✅
X
Java
Spring
✅
✅
X
X
X
Java
Jsp
✅
✅
✅
X
X
Crystal
Kemal
✅
✅
✅
✅
✅
JS
Express
✅
✅
X
X
X
JS
Next
X
X
X
X
X
规范标准
规范
格式
URL
Method
Param
Header
WS
OAS 2.0 (Swagger 2.0)
JSON
✅
✅
✅
✅
X
OAS 2.0 (Swagger 2.0)
YAML
✅
✅
✅
✅
X
OAS 3.0
JSON
✅
✅
✅
✅
X
OAS 3.0
YAML
✅
✅
✅
✅
X
RAML
YAML
✅
✅
✅
✅
X
工具安装
由于该工具基于Crystal开发,因此我们首先需要在本地设备上装并配置好Crystal开发环境。免费源码下载
源码安装
首先,我们需要访问下列地址安装Crystal-lang:
复制https://crystal-lang.org/install/1.接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
复制git clone https://github.com/hahwul/noir1.然后切换到项目目录中,并安装工具所需其他依赖组件:
复制cd noir shards install1.2.3.依赖组件安装完成后,我们需要对代码进行构建:
复制shards build --release --no-debug1.最后,将构建生成后的代码拷贝到指定路径即可:
复制cp ./bin/noir /usr/bin/1.Docker安装(GHCR)
复制docker pull ghcr.io/hahwul/noir:main1.Homebrew安装(macOS)
复制brew tap hahwul/noir brew install noir1.2.3.工具使用帮助
复制Usage: noir <flags> Basic: -b PATH, --base-path ./app 设置基路径(必须) -u URL, --url http://.. 设置终端节点基地址URL -s SCOPE, --scope url,param 设置检测范围 Output: -f FORMAT, --format json 设置输出格式,包括[plain/json/markdown-table/curl/httpie] -o PATH, --output out.txt 将结果写入到文件中 --set-pvalue VALUE 给已识别参数指定值 --no-color 禁用颜色高亮输出 --no-log 仅显示结果 Deliver: --send-req 将结果发送至Web请求 --send-proxy http://proxy.. 通过HTTP代理将结果发送至Web请求 Technologies: -t TECHS, --techs rails,php 设置要使用的技术 --exclude-techs rails,php 指定需要排除的技术 --list-techs 显示所有技术(列表) Others: -d, --debug 显示调试信息 -v, --version 显示工具版本 -h, --help 显示工具帮助信息1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.工具使用样例
复制noir -b . -u https://testapp.internal.domains1.
JSON结果
复制noir -b . -u https://testapp.internal.domains -f json1. 复制[ ... { "headers": [], "method": "POST", "params": [ { "name": "article_slug", "param_type": "json", "value": "" }, { "name": "title", "param_type": "json", "value": "" }, { "name": "id", "param_type": "json", "value": "" } ], "protocol": "http", "url": "https://testapp.internal.domains/comments" } ]1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
Noir:【GitHub传送门】
参考资料
https://crystal-lang.org/install/
本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM






