mcpField
H
hunt-exceptional-conditions

hunt-exceptional-conditions

github.com/elementalsouls安全5.3k195 次安装今天更新
代码仓库

关于 hunt-exceptional-conditions

用于发现应用详细错误信息泄露和失效开放行为的安全技能。它引导测试者逐项改变输入假设,并从响应正文确认泄露,而非仅凭状态码判断。

主要功能

  1. 01探测意外的数据类型和格式
  2. 02检查响应正文中的错误细节
  3. 03识别各框架的泄露特征
  4. 04记录泄露路径、版本和堆栈帧

适用场景

  1. 01测试 JSON API 的类型字段
  2. 02检查数字和搜索参数
  3. 03审查格式错误的上传请求
  4. 04验证可疑服务器错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/elementalsouls/claude-bughunter --skill hunt-exceptional-conditions

安装后在 Claude Code 中输入/hunt-exceptional-conditions确认已加载。

详细介绍

HUNT-EXCEPTIONAL-CONDITIONS — 详细错误 / 故障开放(A10:2025)

实际有价值的发现

设计良好的应用会捕获错误,并返回简洁、通用的消息。出现故障的应用在收到意料之外的输入时,会抛出未处理的异常,并直接向客户端显示开发者错误页面——泄露堆栈跟踪、ORM/查询内部信息、服务器端文件路径以及框架/库版本。这类信息泄露就是发现结果(也会为后续的 SQLi/RCE/路径攻击提供助力)。

信息探测

任何解析输入的端点都可能存在问题;信息最丰富的端点包括:

JSON APIs that expect typed fields:  POST /api/* with {numbers, ids, enums}
Endpoints with numeric/id path or query params:  /item/{id}, ?page=, ?quantity=
Search / filter / sort params
File or content-type sensitive uploads

攻击 — 发送代码未预料到的内容

使用已知正常的请求,每次只破坏一个假设:

  • **类型错误:**应用期望某个字段为数字/字符串,却收到数组或对象——{"rating":"x","comment":[1,2,3]}、{"quantity":{}}。
  • **格式错误的请求体:**被截断的/!无效 JSON、未闭合的字符串、多余的花括号,或错误/缺失的 Content-Type。
  • **边界值/超大值:**超长字符串、极大/负数/溢出值。
  • 值中嵌入的空字节/控制字符。
POST /api/Feedbacks   {"rating":"notanumber","comment":[1,2,3]}
GET  /item/' OR /item/%00   (also exercises the error path)

检查响应正文,而不只是状态码:500(甚至 200/400)响应的正文中若包含堆栈跟踪或框架错误页面,就是信号。

哪些情况算信息泄露(成功信号)

当响应正文包含跨框架的错误信息泄露特征时,即确认发现:

  • Node/Express + Sequelize:SequelizeDatabaseError、node_modules/sequelize,或包含内部路径的 JS 堆栈。
  • PHP:<b>Warning</b> ... /var/www/.../file.php on line N。
  • Python:Traceback (most recent call last)、werkzeug.exceptions。
  • Java:at com.app.Foo(Foo.java:42) 堆栈帧。
  • .NET:Server Error in '/' Application、[System.XxxException: ...] YSOD。

不含内部信息的干净 JSON 错误({"error":"Invalid input"})不算发现——这属于正确处理。泄露内部结构才算。

验证规范

  • 捕获泄露的确切内容(路径、ORM 类、版本、堆栈帧)——这才是证据。仅仅“返回了 500”不属于信息泄露。
  • 记录泄露内容能为后续攻击提供什么帮助(例如,泄露的 SQL 错误 → hunt-sqli;泄露的绝对路径 → hunt-lfi)。

评论

支持 Markdown