# Pentest Vulns

> 漏洞发现与验证 - 根据前期发现的功能点，针对性测试各类Web漏洞

- Skill: `openaisec/pentest-vulns` (Agent Skill)
- Install (CLI): `npx skillmds@latest add openaisec/pentest-vulns`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openaisec/pentest-vulns/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: openaisec (https://skillmd.com/u/openaisec)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openaisec/pentest-vulns

---


# 漏洞发现与验证

## 决策树

根据前期发现选择漏洞测试：

```
登录/认证接口 → SQL注入
查询/列表/搜索接口 → SQL注入 + IDOR + XSS + SSTI
文件上传 → 任意文件上传 + 路径穿越 + XXE
文件下载/预览 → 路径穿越/任意文件读取 + SSRF
URL/代理/预览/跳转 → SSRF + 命令注入 + Open Redirect
管理后台 → 垂直越权 + 命令注入 + SSRF
XML/SOAP接口 → XXE + 命令注入
表单/修改操作 → CSRF
重定向/Set-Cookie → CRLF注入
全接口通用 → CORS + 方法篡改
无参数输入 → 跳过，仅出信息收集报告
已识别产品/版本 → 历史漏洞/CVE（见下方）
```

## 核心规则

必须看响应内容，不能只看状态码。所有工具输出必须亲自读取分析逐条验证。

## 文件组织

```
tmp/<时间戳>/raw/vulns/
├── sqli/  ├── xss/  ├── ssrf/  ├── cmdi/
├── file_upload/  ├── path_traversal/  ├── xxe/
├── ssti/  ├── idor/  ├── cors/  ├── csrf/
├── open_redirect/  ├── crlf/  └── cve/
```

## 各漏洞测试

### SQL注入

关注：GET参数(id/uid/orderId)、GET/POST搜索参数(keyword/q/search)、JSON参数(application/json经常被忽略)、排序(sort/order)、Header(Cookie/X-Forwarded-For/User-Agent/Referer)。

测试：数字型(`1 AND 1=1`)/字符型(`' OR '1'='1`)/时间盲注(`SLEEP(3)`)→判断+闭合尝试(`'`/`"`/`')`/`")`/`;`)→数据库识别(报错信息/@@version/banner)

WAF绕过：大小写/内联注释/双重URL编码/空字节截断。

### XSS

关注：搜索回显/评论/富文本/JSONP回调/文件名回显/错误信息、URL参数反映在页面中。

**禁止 `alert()`/`prompt()`/`confirm()`**，改用 `console.log()` 或 DOM 操作验证。存储型用唯一标识符确认，不注入可见内容。

反射型：`<script>console.log(1)</script>`/`<img src=x onerror=console.log(1)>` → HTML属性突破(`" onfocus=console.log(1)`)。
DOM型：Playwright访问源/沉入点追踪。
存储型：提交payload后用Playwright验证。

判断：HTML直接含未编码标签→存在；被`&lt;`编码→尝试绕过。

### SSRF

关注功能：URL预览/图片加载/文件导入/Webhook/PDF生成/代理/分享/OCR/OSS上传。
关注参数名：url/link/src/href/path/callback/redirect/imageURL/sourceURL。

测试：DNSLog确认→协议探测(file/dict/gopher)→内网探测(10/172/192/云元数据169.254)→进制绕过/域名绕过。

### 命令注入

关注功能：Ping/DNS/压缩备份/图片处理/PDF生成。关注参数名：ip/host/domain/cmd/path/file。

Payload：`; id`/`| whoami`/`\`id\``/`$(whoami)`/`%0a id`/`&& id`。
空格绕过：`${IFS}`/`$IFS$9`；黑名单绕过：`/bin/cat`/`c'a't`。

### 文件上传

扩展名绕过：.php5/.phtml/.jspx/.cer/.asa → 大小写/双写(.php.jpg)/00截断/末尾空格点/Windows ADS。
Content-Type绕过：`file=@shell.php;type=image/jpeg`。
路径控制：`filename=../../../shell.php`。

### 路径穿越/任意文件读取

关注功能：文件下载/预览/模板/导出/头像/日志。关注参数名：file/path/name/src/template。

Payload：`../../../etc/passwd`→URL编码→双重编码→Windows路径(`..\..\..\win.ini`)。
判断：响应含`root:x:0:0`(Linux)或`[fonts]`(Windows)→确认。

### XXE

关注：SOAP/WSDL、XML上传(DOCX/XLSX/SVG)、XML Content-Type API、SAML。

Payload：实体文件读取(`<!ENTITY xxe SYSTEM "file:///etc/passwd">`)→Blind XXE(dnslog)。

### SSTI

引擎检测：`{{7*7}}`(Jinja2/Twig)→`${7*7}`(Freemarker)→`#{7*7}`(Thymeleaf)→`<%= 7*7 %>`(EJS)。
区分：`{{7*'7'}}` Jinja2=7777777/Twig=49。
判断：响应含49→确认SSTI。

### 越权

水平(IDOR)：替换ID参数(`/api/user/1`→`/api/user/2`)，修改POST body中ID。
垂直：普通用户cookie访问`/api/admin/*`，修改role/jwt payload。

### CORS

测试：任意Origin→null Origin→子域名绕过。
高危：`ACAO: 任意域名` + `ACAC: true`。低风险：`ACAO: *`无ACAC。
无ACAO头→安全。

### CSRF

关注功能：修改密码/资料、转账、删除操作。检查：是否有CSRF Token、SameSite Cookie、自定义头。

验证：Playwright构造跨域POST请求，不携带Cookie，观察是否成功。

### Open Redirect

关注参数名：redirect/url/next/returnUrl/back/r/ref/target。

测试：`?redirect=https://evil.com`、`//evil.com`、`%2f%2fevil.com`、`\evil.com`。

### CRLF注入

关注功能：重定向、Set-Cookie、Location头反射。

测试：`%0d%0aSet-Cookie:crlf=1`、`%0d%0a%0d%0a<script>`、`%0d%0aLocation:http://evil.com`。

### 历史漏洞/CVE

触发条件：fingerprint.md 识别出具体产品+版本。

流程：
1. **联网搜索** — 根据产品名+版本号，搜索已知 CVE 和公开漏洞
2. **汇报用户** — 列出：CVE编号、影响版本、漏洞类型、危害等级。提示"可能存在以下历史漏洞"
3. **等待用户判断** — 不直接利用。原因：网上 exploit 常含危险命令（`rm -rf`/弹计算器/反弹shell），需用户审核
4. **用户确认后** — 用户可自行测试，或提供安全的 PoC 给 AI 执行

```bash
# TscanClient POC（按产品关键字）
"{{AITOOLS_DIR}}/TscanClient_windows_amd64_v2.9.5/TscanClient_windows_amd64_v2.9.5.exe" \
  -u <url> -m poc -pocname <product_keyword> -o <项目tmp>/vulns/cve/tscan_cve.txt

# Nuclei（仅用户明确要求，按CVE标签）
"{{AITOOLS_DIR}}/漏洞扫描/nuclei/nuclei.exe" \
  -u <url> -tags cve -severity medium,high,critical -o <项目tmp>/vulns/cve/nuclei_cve.txt
```

常见框架优先级：Spring Boot → Shiro → Fastjson → Log4j → Struts2 → ThinkPHP → Laravel → Django

## 自动化扫描

```bash
# TscanClient POC
"{{AITOOLS_DIR}}/TscanClient_windows_amd64_v2.9.5/TscanClient_windows_amd64_v2.9.5.exe" \
  -u <url> -m poc -pocname <keyword> -o <项目tmp>/vulns/tscan_poc.txt

# Nuclei（仅用户明确要求）
"{{AITOOLS_DIR}}/漏洞扫描/nuclei/nuclei.exe" \
  -u <url> -severity medium,high,critical -o <项目tmp>/vulns/nuclei_result.txt
```

