mcpField
P
pentest-whitebox-code-review

pentest-whitebox-code-review

github.com/jd-opensource安全31567 次安装28 周前更新
代码仓库

关于 pentest-whitebox-code-review

面向安全审计人员的白盒代码审查技能,追踪用户可控输入到危险接收点的数据流。它分类注入与输出上下文,并为后续漏洞验证排列发现项优先级。

主要功能

  1. 01从接收点反向追踪污点
  2. 02注入位置分类
  3. 03XSS 输出上下文检查
  4. 04认证与授权审查
  5. 05SSRF 接收点分析
  6. 06生成优先级验证队列

适用场景

  1. 01审计代码库中的注入风险
  2. 02检查不同输出上下文的编码
  3. 03审查认证与授权控制
  4. 04整理待验证的漏洞发现

安装

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

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-whitebox-code-review

安装后在 Claude Code 中输入/pentest-whitebox-code-review确认已加载。

附带文件references/tools.mdreferences/workflows.md

详细介绍

渗透测试白盒代码审查

目的

使用 Shannon 的反向污点分析方法,对源代码进行系统性的白盒安全审计。从危险接收点追踪到用户可控的来源,按插槽类型对注入上下文进行分类,验证 XSS 的渲染上下文,并生成按优先级排序的利用队列,供后续基于证据的利用验证使用。

先决条件

授权要求
  • 书面授权,明确包含源代码审查范围
  • 源代码访问权限——包含版本控制历史的完整代码库
  • 如有,提供架构文档(数据流图、API 规范)
  • 部署配置访问权限(环境变量、机密管理)
环境设置
  • 用于污点分析的 semgrep 自定义规则
  • 为目标语言构建的 CodeQL 数据库
  • 用于快速模式搜索的 ripgrep
  • 用于反编译 Android APK 的 jadx(如适用)
  • 用于提取 JavaScript Source Map 的工具
  • 目标语言的 AST 解析工具(tree-sitter、babel 等)

核心工作流

阶段 1:发现
  1. 架构映射:识别应用层(路由、控制器、服务、数据访问、模板)。映射从 HTTP 入口经过业务逻辑到数据库、文件或外部接收点的数据流。
  2. 入口点枚举:整理所有用户可控的输入来源——HTTP 参数、标头、Cookie、文件上传、WebSocket 消息、环境变量、对用户存储数据的数据库读取。
  3. 安全模式清单:识别现有安全控制——输入验证函数、输出编码辅助函数、参数化查询模式、CSRF 防护、身份验证中间件、速率限制器。
阶段 2:漏洞分析(5 条并行线)
  1. 注入接收点搜寻:从 SQL、命令、文件和模板接收点反向追踪污点至来源。按插槽类型对每个接收点进行分类:SQL-val、SQL-ident、CMD-argument、FILE-path、TEMPLATE-expr。验证参数化或清理操作是否切断污点链。
  2. XSS 渲染上下文分析:识别模板和响应中的所有动态输出点。按渲染上下文分类:HTML_BODY、HTML_ATTRIBUTE、JAVASCRIPT_STRING、URL_PARAM、CSS_VALUE。验证每个输出点是否应用了适合上下文的编码。
  3. 身份验证检查清单(9 项):传输安全、速率限制、会话管理、令牌属性、防止会话固定、密码策略实施、登录响应一致性、账户恢复安全、SSO/OAuth 实现。
  4. 授权模型审查(3 种类型):水平(同角色跨用户访问)、垂直(跨角色权限提升)、上下文工作流(基于状态的授权绕过)。
  5. SSRF 接收点搜寻:识别所有出站请求接收点。按类型分类:经典(直接 URL)、盲式(无响应)、半盲式(部分响应)、存储式(延迟执行)。追踪从用户输入到请求分发的 URL 构造过程。
阶段 3:综合
  1. 置信度评分与利用队列:根据污点链完整性、清理绕过可能性和影响严重程度为每项发现评分。生成利用队列 JSON,供后续漏洞利用验证使用。

插槽类型分类

插槽类型接收点模式所需清理方式
SQL-val查询参数值位置参数化查询 / 预处理语句
SQL-ident表名、列名、ORDER BY允许列表验证
CMD-argumentShell 命令参数参数转义 + 允许列表
FILE-path文件读取 / 写入路径构造路径规范化 + 允许列表
TEMPLATE-expr模板引擎表达式感知上下文的自动转义

渲染上下文分类

上下文输出位置是否需要编码
HTML_BODYHTML 标签之间HTML 实体编码
HTML_ATTRIBUTE属性值内部属性编码 + 引号
JAVASCRIPT_STRINGJS 字符串字面量内部JavaScript Unicode 转义
URL_PARAMURL 查询参数值URL 百分号编码
CSS_VALUECSS 属性值内部CSS 十六进制编码

工具类别

类别工具用途
污点分析semgrep、CodeQL自动追踪从源到汇的污点
模式搜索ripgrep、ast-grep快速匹配代码模式
反编译jadx、sourcemap-extract从编译产物中还原源代码
AST 解析tree-sitter、babel分析语言感知的代码结构
依赖项审计npm audit、pip-audit、snyk检测已知漏洞

参考资料

  • references/tools.md - 工具函数签名和参数
  • references/workflows.md - 污点分析工作流和漏洞模式

评论

支持 Markdown