# Audit Skills

> Security audit workflow for authorized Java, .NET, PHP source and deployment artifact review.

- Skill: `openaisec/audit-skills` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add openaisec/audit-skills`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openaisec/audit-skills/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: openaisec (https://skillmd.com/u/openaisec)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openaisec/audit-skills

---

# Audit Skills

## 1. 默认输出目录

未指定目录时，先创建 `<目标目录>/audit-workspace/` 作为审计工作目录。

- 默认临时脚本输出目录：`<审计工作目录>/script-output/`
- 报告输出目录：`<审计工作目录>/reports/`
- 工具目录：`<审计工作目录>/tools/`
- 反编译目录：`<审计工作目录>/decompiled/`
- 反混淆目录：`<审计工作目录>/deobfuscated/`
- 证据目录：`<审计工作目录>/evidence/`

所有脚本执行结果、临时扫描结果、命令输出、日志和中间证据都写入 `script-output/`；最终可交付报告只写入 `reports/`，默认文件名为 `audit-report.md`。

## 2. 语言参考入口

按目标语言只读取对应参考文件，避免无关上下文进入审计：

- Java 审计、CFR 反编译、Java 组件 YAML 正则匹配扫描：读取 `references/java.md`
- .NET / ASP.NET 反编译与反混淆：读取 `references/net.md`
- PHP 审计：无专用 reference，按本文件的漏洞有效性标准与安全边界执行。

语言参考中的扫描或组件命中只能作为线索；确认漏洞必须回到本文件的有效性标准。

## 3. 如何判定漏洞有效

只有同时满足以下标准，才能把发现写成“确认漏洞”：

- 可达：存在真实外部入口，例如 HTTP 路由、Servlet、Filter、Controller、RPC、WebService、上传处理入口等。
- 可控：能指出用户可控参数、参数来源、绑定方式，以及参数进入代码的准确位置。
- 可传播：存在清晰的 source-to-sink 文件/方法级调用链，且中途没有有效鉴权、校验、编码、白名单或类型约束阻断。
- 可利用：sink 的语义在当前项目上下文中能造成真实安全影响。
- 可复现：必须有构造的安全 Payload，并提供可直接放入 BurpSuite Repeater 的原始 HTTP 请求包。
- 影响成立：能说明触发后产生的越权、泄露、绕过、写入或其他安全影响。

任一标准缺失时，只能写为“高风险线索 / 待人工验证”，不得写入“确认漏洞”。

每个确认漏洞必须包含：

```text
标题:
严重等级:
受影响入口:
鉴权要求:
用户可控输入:
Source-to-sink 调用链:
Sink:
同源/相似受影响路由:
防护判断:
安全 Payload:
BurpSuite 原始请求包:
影响:
证据文件和行号:
限制说明:
```

BurpSuite 原始请求包必须完整到可直接粘贴进 Repeater：

```http
POST /<授权测试路径> HTTP/1.1
Host: <授权测试主机>
Content-Type: application/x-www-form-urlencoded
Connection: close

<参数名>=<安全证明Payload>
```

## 4. 安全边界

- 不准输出破坏性 Payload。
- 不准包含删除文件、修改配置、删除/清空/截断数据库、擦除表数据、写入持久化后门、反弹 shell、窃取敏感数据或横向移动的 Payload。
- 只使用无害证明 Payload，例如只读验证、布尔差异、受控回显标记，或针对非敏感测试记录的越权证明。
- Host、Cookie、凭据、ID、敏感值默认使用占位符；除非用户明确提供授权测试值。
- 如果漏洞必须依赖破坏性操作才能证明，只能写为高风险线索，并说明缺失的非破坏性验证路径。

