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

admin 2023年9月23日14:33:37评论5 views字数 2266阅读7分33秒阅读模式
如何使用Noir从源代码检测攻击面


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


 关于Noir 


Noir是一款功能强大的代码安全检测工具,在该工具的帮助下,广大研究人员能够轻松从源代码层面检测目标应用程序的潜在攻击面。


 功能介绍 

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

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:main

Homebrew安装(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 显示工具帮助信息

(向右滑动,查看更多)


 工具使用样例 


noir -b . -u https://testapp.internal.domains

(向右滑动,查看更多)


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


JSON结果

noir -b . -u https://testapp.internal.domains -f json[
...
{
"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"
}
]

(向右滑动,查看更多)


 许可证协议 


本项目的开发与发布遵MIT开源许可证协议。


 项目地址 


Noirhttps://github.com/hahwul/noir


FreeBuf粉丝交流群招新啦!

在这里,拓宽网安边界

甲方安全建设干货;

乙方最新技术理念;

全球最新的网络安全资讯;

群内不定期开启各种抽奖活动;

FreeBuf盲盒、大象公仔......

扫码添加小蜜蜂微信回复“加群”,申请加入群聊

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

如何使用Noir从源代码检测攻击面
如何使用Noir从源代码检测攻击面
https://crystal-lang.org/install/

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

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

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

原文始发于微信公众号(FreeBuf):如何使用Noir从源代码检测攻击面

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月23日14:33:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用Noir从源代码检测攻击面http://cn-sec.com/archives/2062078.html

发表评论

匿名网友 填写信息