如何使用Noir从源代码检测攻击面

关于NoirNoir是一款功能强大的代码安全检测工具,在该工具的帮助下,广大研究人员能够轻松从源代码层面检测目标应用程序的潜在攻击面 。
功能介绍1、从源代码自动识别编程语言和框架;
2、通过代码分析查找API终端节点和网站页面;
3、通过与ZAP、Burpsuite、CAIdo和More proxy工具等代理工具的交互 , 快速加载分析结果;
4、支持为已成功识别的攻击面提供结构化结果数据,例如JSON和HAR等,以实现与其他工具的无缝交互;
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/ target=_blank class=infotextkey>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/接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://Github.com/hahwul/noir然后切换到项目目录中,并安装工具所需其他依赖组件:
cd noirshards install依赖组件安装完成后,我们需要对代码进行构建:
shards build --release --no-debug最后,将构建生成后的代码拷贝到指定路径即可:
cp ./bin/noir /usr/bin/Docker安装(GHCR)docker pull ghcr.io/hahwul/noir:mainHomebrew安装(macOS)brew tap hahwul/noirbrew install noir工具使用帮助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显示工具帮助信息


推荐阅读