freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用Noir从源代码检测攻击面
2023-09-13 11:14:03


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

# 代码审计 # 攻击面 # 代码安全 # 源代码安全 # 源代码检测
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录