当前位置: 首页 > news >正文

️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具

在网络安全领域,漏洞的发现和修复是保护系统安全的关键。今天,我要向大家介绍一款创新的工具——Vulnhuntr,这是一款利用大型语言模型(LLM)进行零样本漏洞发现的工具,能够自动分析代码,检测远程可利用的安全漏洞。

Vulnhuntr 简介

Vulnhuntr 是世界上首款利用 LLMs 和静态代码分析来识别远程可利用漏洞的工具。它能够自动创建并分析整个代码调用链,从远程用户输入开始,到服务器输出结束,检测出复杂、多步骤、绕过安全防护的漏洞,这些漏洞的复杂性远远超出了传统静态代码分析工具的能力。

漏洞发现

使用 Vulnhuntr,你可以帮助发现漏洞并获得奖励。如果你使用 Vulnhuntr 发现了漏洞,可以向 huntr.com 提交报告以获得奖励,并且可以通过提交 PR 将其添加到下面的列表中。

支持的漏洞类型

Vulnhuntr 目前支持以下类型的漏洞检测:

  • 本地文件包含 (LFI)
  • 任意文件覆盖 (AFO)
  • 远程代码执行 (RCE)
  • 跨站脚本 (XSS)
  • SQL 注入 (SQLI)
  • 服务器端请求伪造 (SSRF)
  • 不安全的直接对象引用 (IDOR)

安装和使用

Vulnhuntr 严格要求使用 Python 3.10,因为它使用了 Jedi 来解析 Python 代码,而 Jedi 在其他版本的 Python 中存在一些 bug。

推荐使用 pipx 或 Docker 来安装和运行 Vulnhuntr。

使用 Docker 安装:

bash

docker build -t vulnhuntr https://github.com/protectai/vulnhuntr.git#main
docker run --rm -e ANTHROPIC_API_KEY=sk-1234 -v /local/path/to/target/repo:/repo vulnhuntr:latest -r /repo -a target-file.py

使用 pipx 安装:

bash

pipx install git+https://github.com/protectai/vulnhuntr.git

或者,你可以直接从源代码使用 poetry 安装:

bash

git clone https://github.com/protectai/vulnhuntr
cd vulnhuntr && poetry install

使用命令行界面:

bash

usage: vulnhuntr.py [-h] -r ROOT [-a ANALYZE] [-l {claude,gpt}] [-v]Analyze a GitHub project for vulnerabilities. Export your ANTHROPIC_API_KEY before running.options:-h, --help            show this help message and exit-r ROOT, --root ROOT  Path to the root directory of the project-a ANALYZE, --analyze ANALYZESpecific path or file within the project to analyze-l {claude,gpt}, --llm {claude,gpt}LLM client to use (default: claude)-v, --verbosity       Increase output verbosity (-v for INFO, -vv for DEBUG)

例如,使用 Claude 分析整个仓库:

bash
python vulnhuntr.py -r /path/to/target/repo/

逻辑流程

Vulnhuntr 的逻辑流程包括:

  1. LLM 总结 README 并将其包含在系统提示中。
  2. LLM 对整个文件进行初步分析,并报告任何潜在的漏洞。
  3. Vulnhuntr 为 LLM 提供针对特定漏洞的提示,进行二次分析。
  4. 每次 LLM 分析代码时,它会从项目的其他文件中请求额外的上下文函数/类/变量。
  5. 它继续这样做,直到完成从用户输入到服务器处理的整个调用链,然后给出最终分析。
  6. 最终分析包括其推理、概念验证漏洞利用和置信度分数。

输出

Vulnhuntr 会生成一个详细的报告,描述分析文件中发现的漏洞。报告包括:

  • 每个文件的初始评估结果。
  • 带有上下文函数和类引用的二次评估结果。
  • 发现的漏洞的置信度分数。
  • 分析过程的日志。
  • 概念验证漏洞利用。

注意事项

使用 Vulnhuntr 时,请注意设置 LLM 提供商的消费限额或密切监控成本,因为这个工具可能会产生高额费用,因为它会尽可能多地将代码放入 LLMs 的上下文窗口中。

我们推荐使用 Claude 作为 LLM。通过测试,我们发现它比 GPT 更有效。

Vulnhuntr 是网络安全领域的一项重大创新,它利用了最新的人工智能技术来提高漏洞检测的效率和准确性。如果你对网络安全感兴趣,不妨试试 Vulnhuntr,它可能会成为你不可或缺的工具之一。🔍💻

相关文章:

️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具

在网络安全领域,漏洞的发现和修复是保护系统安全的关键。今天,我要向大家介绍一款创新的工具——Vulnhuntr,这是一款利用大型语言模型(LLM)进行零样本漏洞发现的工具,能够自动分析代码,检测远程…...

【Android】多渠道打包配置

目录 简介打包配置签名配置渠道配置配置打包出来的App名称正式包与测试包配置 打包方式开发工具打包命令行打包 优缺点 简介 多渠道打包 是指在打包一个 Android 应用时,一次编译生成多个 APK 文件,每个 APK 文件针对一个特定的渠道。不同的渠道可能代表…...

Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整

在spring中, AutoConfiguration也是一个种Configuration,只是AutoConfiguration是不能使用proxy的。 而且spring对于两者的加载顺序也不是一视同仁,是有顺序的。spring会先加载@SpringBootApplication可达的且标注了@Configuration的类,这个过程会将@AutoConfiguration标注…...

点餐系统需求分析说明书(软件工程分析报告JAVA)

目录 1 引言 4 1.1 编写目的 4 1.2 项目背景 4 1.3 定义 4 1.4 预期的读者 5 1.5 参考资料 5 2 任务概述 5 2.1 目标 5 2.2 运行环境 5 2.3 条件与限制 6 3 数据描述 6 3.1 静态数据 6 3.2 动态数据 6 3.3 数据库介绍 6 3.4 对象模型 6 3.5 数据采集 7 4 动态模型 7 4.1 脚本 …...

Python条形图 | 指标(特征)重要性图的绘制

在数据科学和机器学习的工作流程中,特征选择是一个关键步骤。通过评估每个特征对模型预测能力的影响,我们可以选择最有意义的特征(指标),从而提高模型的性能并减少过拟合。本文将介绍如何使用 Python 的 Seaborn 和 Ma…...

危险物品图像分割系统:一键训练

危险物品图像分割系统源码&数据集分享 [yolov8-seg-GFPN&yolov8-seg-CSwinTransformer等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global…...

城市景色视频素材下载好去处

在制作短视频、Vlog 或商业宣传片时,城市景色视频素材能为作品增添现代感与活力。繁华都市、流光溢彩的夜景、清晨街道等都是展现城市魅力的好素材。那么城市景色视频素材去哪里下载呢? 蛙学网 是专为短视频创作者打造的素材平台,城市景色素材…...

基于SSM美容院管理系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,套餐类型管理,美容预约管理,生日提醒管理,管理员管理,系统管理 员工账号功能包括:系统首页,个人中心&#…...

Threejs 实现3D 地图(04)3d 地图的柱状图和文字显示

3d 地图的数据展示 代码仓库: King/threejs-3d-map 核心代码: function createText(feature, level, font) {if (feature.properties.name) {const [x_XYZ, y_XYZ] handleProject(feature.properties.center)// 缺点:首次渲染很慢 无法使…...

Oracle 第2章:安装与配置Oracle

安装与配置Oracle数据库是一项复杂但有序的过程。以下是对Oracle数据库安装与配置的概述,包括系统需求与硬件推荐,以及详细的安装步骤。 系统需求与硬件推荐 系统需求 在安装Oracle数据库之前,需要确保目标系统满足Oracle官方规定的最低要…...

动态规划 —— 斐波那契数列模型-解码方法

1. 解码方法 题目链接: 91. 解码方法 - 力扣(LeetCode)https://leetcode.cn/problems/decode-ways/description/ 2. 题目解析 1. 对字母A - Z进行编码1-26 2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 3. 0n不能解码 4. …...

PPT / Powerpoint中利用LaTeX输入公式

PPT / Powerpoint中利用LaTeX输入公式_ppt插入latex公式-CSDN博客文章浏览阅读2.8w次,点赞42次,收藏75次。新版的Word(Office 2016后?)是支持LaTeX公式输入的,但是Powerpoint并不支持。下面介绍如何利用。_…...

C++ 模板专题 - 类型擦除

一:概述 C 中的类型擦除(Type Erasure)是一种技术,允许你在不暴露具体类型信息的情况下,通过统一的接口处理不同的类型。这种技术常用于实现泛型编程,特别是在需要支持多种不同类型的情况下,如容…...

RuoYi-Vue项目 重点代码讲解

1. RuoYi-Vue项目 常规说明: ruoyi-admin:后台接口开发(主要存放控制层相关代码)ruoyi-common:通用工具ruoyi-framework:框架核心ruoyi-generator:代码生成(可以移除)r…...

pandas习题 024:用字典构造 DataFrame

编码题)用 Python 的字典构造一个 DataFrame,它有 a、b 两列,三行数据。其中 a 列值为 1、4、7,b 列值为 2、5、8,索引为 x、y、z。 即: ‘’’ a b x 1 2 y 4 5 z 7 8 ‘’’ import pandas as pddf = pd.DataFrame({a: [1, 4,...

如何在Node.js中执行解压缩文件操作

一、解压文件 1.安装依赖: 安装adm-zip依赖包:npm install adm-zip --save 安装iconv-lite依赖包:npm install iconv-lite --save 解压前的file文件夹结构: update-1.0.2.zip压缩包内容: 2.在depresssFile.js文件&…...

梦熊 CSP-S模拟赛 T3 youyou 的序列 II

原题链接 题目大意 给定一个长度为 n 的非负整数序列 a ,初始时所有数字均被标记为蓝色,youyou 和 yy 轮流对序列 a 进行操作,由 youyou 开始。 • 如果当前是 youyou 的回合,那么他可以至多选择连续的 c 1 个数…...

记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置

服务端部署 # 提前拉取镜像 docker pull gitlab/gitlab-ce:17.5.0-ce.0docker run -d \ --name gitlab \ --hostname gitlab.test.cn \ -p 443:443 \ -p 88:80 \ -p 2222:22 \ --restartalways \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab …...

opencv-platform实现人脸识别

和同事接触了下甲方,对方算是一个资源整合的自由人,手里有项目,然后认识些开发就聊下有什么事情可以做的,对方聊了下做人脸签到,或者说人脸打开。就这方面我做了下简单的了解。做了个java小demo。 我们常用的人脸识别的摄像头屏幕…...

leetcode 有重复字符串的排列组合

1.题目要求: 2.题目代码&#xff1a; class Solution { public://运用回溯vector<string> result;string s;void backtricking(string S,vector<bool>& used){if(s.size() S.size()){result.push_back(s);return;}for(int i 0;i < S.size();i){if(i >…...

告别盲目搜索!Unity大版本升级时,系统化处理API变更的5个步骤

Unity大版本升级的系统化实践&#xff1a;从API变更管理到团队协作优化 当Unity 2023 LTS发布时&#xff0c;某中型游戏团队在升级过程中发现超过40%的脚本因API变更而报错&#xff0c;导致项目停滞两周。这种场景在技术迭代中并不罕见&#xff0c;但大多数团队仍采用"遇到…...

OpenAI Triton项目中的相关技术对比:多面体编译与调度语言

OpenAI Triton项目中的相关技术对比&#xff1a;多面体编译与调度语言 【免费下载链接】triton Development repository for the Triton language and compiler 项目地址: https://gitcode.com/GitHub_Trending/tri/triton 引言 在深度学习编译器领域&#xff0c;OpenA…...

中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络

中兴光猫配置解密工具&#xff1a;轻松破解网络限制&#xff0c;完全掌控家庭网络 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否遇到过想要修改光猫设置却找不到入…...

FSearch:极速文件搜索工具,让Linux文件查找告别等待

FSearch&#xff1a;极速文件搜索工具&#xff0c;让Linux文件查找告别等待 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 还在为Linux系统中查找文件而烦恼吗&#…...

汽车电子测试人的 Prompt 工程

专栏&#xff1a;《AI 汽车电子测试实战》第 17 篇 作者&#xff1a;一线汽车电子测试工程师 适合人群&#xff1a;所有使用 AI 的测试工程师、想提升 AI 使用效率的测试人员开篇&#xff1a;为什么需要学 Prompt&#xff1f; 这是我上个月在某车企的 AI 培训项目中的真实经历。…...

如何快速找到领域内的核心论文?3 条最有效路径

在做科研文献检索时&#xff0c;很多研究者都会遇到同一个问题&#xff1a; 文献很多&#xff0c;但不知道哪些最重要。例如&#xff0c;当你在数据库中输入一个研究关键词时&#xff0c;检索结果可能会出现几百篇甚至上千篇论文。面对如此庞大的文献数量&#xff0c;很多人会产…...

K8s Ingress实战:如何为静态资源开启Gzip压缩和Cache Control(附完整ConfigMap配置)

Kubernetes Ingress高级配置&#xff1a;静态资源Gzip压缩与缓存策略实战指南 在当今快节奏的数字化体验中&#xff0c;网页加载速度直接影响用户留存率和转化率。根据行业研究&#xff0c;页面加载时间每增加1秒&#xff0c;可能导致转化率下降7%。作为Kubernetes运维专家&…...

【模型手术室】第七篇:模型量化 —— 从 FP16 到 4-bit 的极限压缩与性能翻倍

专栏进度&#xff1a;07 / 10 (微调实战专题) 大模型默认使用 FP16&#xff08;16 位浮点数&#xff09; 存储权重&#xff0c;这意味着每个参数占 2 字节。一个 7B 模型光权重就占 14GB 显存。量化的本质是把这些高精度的数字映射到更小的整数空间&#xff08;如 INT4&#xf…...

Souliss嵌入式状态同步框架:轻量级去中心化智能家居通信实践

1. Souliss 智能家居网络框架深度解析&#xff1a;面向嵌入式工程师的底层通信架构实践指南Souliss 是一个专为资源受限嵌入式节点设计的轻量级、去中心化智能家居网络框架。其核心目标并非构建通用物联网平台&#xff0c;而是解决真实家庭场景中多协议共存、低功耗节点协同、边…...

bert-base-chinese新手教程:从零开始学习中文预训练模型部署与使用

bert-base-chinese新手教程&#xff1a;从零开始学习中文预训练模型部署与使用 1. 认识bert-base-chinese模型 1.1 什么是BERT模型 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是Google在2018年发布的预训练语言模型。它通过大规…...