Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

AIPwn/huntr

Repository files navigation

Vulnhuntr Logo

一个使用 LLM 和静态代码分析来识别远程可利用漏洞的工具。

全球首个自主 AI 发现的 0day 漏洞

描述

Vulnhuntr 利用 LLM 的强大功能,自动创建和分析从远程用户输入到服务器输出的完整代码调用链,用于检测复杂的、多步骤的、绕过安全性的漏洞,这些漏洞远远超出了传统静态代码分析工具的能力范围。查看所有详细信息,包括所有 0-day 漏洞的 Vulnhuntr 输出:Protect AI Vulnhuntr 博客

发现的漏洞

Tip

使用 Vulnhuntr 发现了漏洞?向 huntr.com 提交报告以获得 $,ドル并提交 PR 将其添加到下面的列表中!

Note

此表仅显示了迄今为止发现的部分漏洞。在负责任的披露期结束后,我们将取消编辑。

仓库 Stars 漏洞
gpt_academic 67k LFI, XSS
ComfyUI 66k XSS
Langflow 46k RCE, IDOR
FastChat 37k SSRF
Ragflow 31k RCE
LLaVA 21k SSRF
gpt-researcher 17k AFO
Letta 14k AFO

限制

  • 仅支持 Python 代码库。
  • 只能识别以下漏洞类型:
    • 本地文件包含 (LFI)
    • 任意文件覆盖 (AFO)
    • 远程代码执行 (RCE)
    • 跨站脚本 (XSS)
    • SQL 注入 (SQLI)
    • 服务器端请求伪造 (SSRF)
    • 不安全的直接对象引用 (IDOR)

安装

Important

Vulnhuntr 严格要求 Python 3.10,因为它使用的 Jedi 解析器在该版本中存在一些 bug。如果使用其他版本的 Python 安装,它将无法可靠工作。

我们建议使用 pipx 或 Docker 来轻松安装和运行 Vulnhuntr。

使用 Docker:

docker build -t vulnhuntr https://github.com/protectai/vulnhuntr.git#main

使用方法

此工具设计用于分析 GitHub 仓库中潜在的远程可利用漏洞。该工具需要 API 密钥和 GitHub 仓库的本地路径。您也可以选择性地指定 LLM 服务的自定义端点。

Caution

始终为您使用的 LLM 提供商设置支出限制或密切监控成本。此工具可能会产生高额账单,因为它会尝试在 LLM 的上下文窗口中放入尽可能多的代码。

Tip

我们建议使用 Claude 作为 LLM。通过测试,我们发现它的效果比 GPT 更好。

命令行界面

usage: vulnhuntr [-h] -r ROOT [-a ANALYZE] [-l {claude,gpt,ollama}] [-v]
分析 GitHub 项目中的漏洞。运行前请导出 ANTHROPIC_API_KEY/OPENAI_API_KEY。
options:
 -h, --help 显示此帮助信息并退出
 -r ROOT, --root ROOT 项目的根目录路径
 -a ANALYZE, --analyze ANALYZE
 要分析的项目中的特定路径或文件
 -l {claude,gpt,ollama}, --llm {claude,gpt,ollama}
 要使用的 LLM 客户端(默认:claude)
 -v, --verbosity 增加输出详细程度(-v 为 INFO,-vv 为 DEBUG)

实验性

Ollama 作为选项已包含,但我们尚未成功让开源模型正确构建其输出。

export OLLAMA_BASE_URL=http://localhost:11434/api/generate
export OLLAMA_MODEL=llama3.2
vulnhuntr -r /path/to/target/repo/ -a server.py -l ollama

逻辑流程

VulnHuntr logic

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

Tip

通常置信度分数 < 7 意味着不太可能存在漏洞。置信度分数为 7 意味着应该进行调查,置信度分数为 8+ 意味着很可能存在有效漏洞。

输出

该工具生成一个详细的分析报告,包括:

  • 每个文件的初步评估结果
  • 包含上下文函数和类引用的二次评估结果
  • 发现的漏洞的置信度分数
  • 分析过程的日志
  • PoC 漏洞利用

以下是 Vulnhuntr 报告的示例,描述了在 Ragflow 中发现的 0-day 远程代码执行漏洞(现已修复):

scratchpad:
 1. 分析 llm_app.py 中的 add_llm 函数。2. 识别出用户输入用作访问字典的键:EmbeddingModel、ChatModel、RerankModel、
CvModel 和 TTSModel。3. 这些字典包含类引用,这些类使用用户提供的参数进行实例化。4. factory 变量直接从用户输入(req['llm_factory'])使用,没有适当的验证。5. llm_name 在大多数情况下也是从用户输入派生的。6. 这些类的实例化发生在 try-except 块中,但异常仅用于错误消息,而不是防止执行。7. api_key 和其他敏感信息直接传递给这些实例化的类。8. 对 factory 或 llm_name 变量没有全面的输入验证或清理。9. 漏洞位于用 @login_required 装饰的路由中,表明它对认证用户可访问。10.
审查 EmbeddingModel、ChatModel、RerankModel、CvModel 和 TTSModel 字典以了解其内容和潜在的利用可能性。
----------------------------------------
analysis:
 llm_app.py 中的 add_llm 函数包含一个严重的远程代码执行 (RCE) 漏洞。该函数使用用户提供的输入(req['llm_factory'] 和 req['llm_name'])来动态实例化来自 EmbeddingModel、ChatModel、RerankModel、CvModel 和 TTSModel 字典的类。这种使用用户输入作为键来访问和实例化类的模式本质上是危险的,因为它允许攻击者可能执行任意代码。由于对这些用户提供的值缺乏全面的输入验证或清理,漏洞变得更加严重。虽然有一些特定工厂类型的检查,但它们并不全面,可以被绕过。攻击者可能提供 'llm_factory' 的恶意值,当用作这些模型字典的索引时,导致执行任意代码。该漏洞特别严重,因为它发生在用 @login_required 装饰的路由中,表明它对认证用户可访问,这可能会给人一种虚假的安全感。
----------------------------------------
poc:
 POST /add_llm HTTP/1.1
 Host: target.com
 Content-Type: application/json
 Authorization: Bearer <valid_token>
 
 {
 "llm_factory": "__import__('os').system",
 "llm_name": "id",
 "model_type": "EMBEDDING",
 "api_key": "dummy_key"
 }
 
 此有效负载通过将 'llm_factory' 设置为一个字符串来尝试利用漏洞,该字符串在评估时会导入 os 模块并调用 system。'llm_name' 设置为 'id',如果漏洞利用成功,它将作为系统命令执行。
----------------------------------------
confidence_score:
 8
----------------------------------------
vulnerability_types:
 - RCE
----------------------------------------

日志记录

该工具在名为 vulhuntr.log 的文件中记录分析过程和结果。此文件包含每个分析步骤的详细信息,包括初步和二次评估。

About

about huntr

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /