关于 pentest-web-application-logic-mapper
面向 Web 应用渗透测试的技能,用于梳理工作流、状态转换、路由和信任边界。它将爬取数据与文档整理为经过验证的目标,供后续定向测试。
主要功能
- 01梳理路由、表单、API 和客户端调用
- 02建模状态、操作、角色及副作用
- 03发现隐藏端点与信任边界
- 04区分已验证发现与假设
- 05将目标移交给验证技能
适用场景
- 01梳理多步骤结账或审批工作流
- 02查找可访问但未链接的端点
- 03检查跳步或无效状态变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ crtvrffnrt/ skills --skill pentest-web-application-logic-mapper安装后在 Claude Code 中输入/pentest-web-application-logic-mapper确认已加载。
详细介绍
Web Application Logic Mapper
目的
绘制应用工作流、状态机和隐藏入口面,确保后续验证从具体路由、操作和信任边界出发。
使用场景
- 当前阶段负责遍历、爬取、发现隐藏路由、映射状态机、建模工作流,或映射路由与操作之间的关系。
- 侦察已发现一个在线应用入口面,但工作流上下文不足,无法开展有针对性的验证。
范围
- 复杂的多步骤工作流(结账、注册、审批流程)。
- 依赖状态的操作(例如,“草稿” -> “待处理” -> “已发布”)。
- 隐藏或未公开的 API 端点和参数。
输入
Spider/Crawl Data:已发现 URL 和表单列表。API Documentation:Swagger/OpenAPI 规范、WSDL(如有)。User Manuals/Help Docs:对预期工作流的描述。
输出
State Machine Diagram:有效状态和转换的可视化图示。Logic Flaw Report:识别无效状态转换或被跳过的步骤。Hidden Surface Map:未链接但可访问的端点列表。
成功指标
- 绕过工作流:跳过强制步骤(例如,跳过支付)以完成流程。
- 操纵状态:将对象强制置于无效或有利状态(例如,重新打开已关闭的工单)。
- 发现隐藏功能:访问不面向公众的 Beta、调试或旧版功能。
工作流
- 明确身份上下文、会话状态和范围边界。
- 映射可导航路由、隐藏路由、表单、API 和客户端调用。
- 将操作与对象、角色、状态和副作用关联起来。
- 在测试滥用行为前,识别信任边界和特权转换。
- 分别标记已确认路由、假设、已排除路径和未知项。
- 将精确目标移交给验证技能。
验证关卡
- 通过直接、低影响的请求确认隐藏入口面,再将其视为可访问。
- 使用工作流控件后,再报告跳过步骤或无效转换的问题。
- 将爬虫输出视为线索,直到经过人工或程序验证。
常见攻击向量和原语
- 竞态条件:发送并发请求以利用时间窗口(例如,重复使用优惠券)。
- 业务逻辑错误:利用业务规则实现中的缺陷(例如,购物车中的负数量)。
- 强制浏览:不通过 UI 导航,直接访问 URL。
- 批量赋值:通过在请求正文中包含内部对象属性(例如,
isAdmin、balance)来修改这些属性。
要测试的控件
- 状态验证:验证服务器是否强制执行有效的状态转换。
- 事务完整性:确保关键操作是原子且一致的。
- 速率限制:检查敏感操作是否设有限制,以防止暴力破解或滥用。
移交标准
- 当无效转换、竞态窗口、重放或配额滥用成为当前阶段的重点时,移交给
pentest-business-logic-abuse。 - 当路由访问取决于角色、所有权、会话或租户时,移交给
pentest-advanced-access-control-auditor或pentest-authentication-authorization-review。 - 当解析器行为或浏览器接收点成为主要阻碍时,移交给
pentest-input-protocol-manipulation或pentest-xss。
评论
支持 Markdown