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

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

关于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 noir

shards 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/noir

brew 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

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开源许可证协议。

项目地址

Noir:【GitHub传送门】

参考资料

https://crystal-lang.org/install/

本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM

责任编辑:武晓燕 来源: ​FreeBuf.COM
相关推荐

2022-02-14 17:13:46

攻击面管理网络安全

2023-11-10 09:54:32

2022-04-27 05:36:51

攻击面网络攻击网络安全

2021-07-09 09:09:47

ASM攻击面管理安全观察

2022-06-16 10:02:39

EASM攻击面管理

2020-08-31 10:54:05

勒索软件漏洞网络安全

2023-11-23 15:09:18

2018-11-03 05:00:29

微隔离网络攻击漏洞

2022-07-29 12:42:35

攻击面管理

2024-04-10 15:01:46

2022-06-16 15:29:16

攻击面管理ASM

2023-10-13 11:55:17

2016-10-24 22:05:22

2017-12-20 10:47:56

2018-11-19 22:59:31

2014-03-19 10:25:14

2022-08-26 12:51:54

外部攻击面网络安全网络攻击

2023-08-24 12:13:40

2021-11-29 18:13:31

攻击面漏洞网络攻击

2021-06-30 10:10:01

企业攻击漏洞网络安全
点赞
收藏

51CTO技术栈公众号