如何使用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 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

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/151444.html<

(0)
运维的头像运维
上一篇2025-03-13 13:22
下一篇 2025-03-13 13:24

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注