关于 security-pen-testing
面向获系统所有者书面授权的安全团队,提供针对应用、API、基础设施及供应链的渗透测试方法、清单与自动化工具。内容覆盖 OWASP 检查、依赖和秘密扫描、手动测试以及结构化报告生成。
主要功能
- 01OWASP Top 10 检查清单
- 02静态分析与依赖漏洞审计
- 03Git 历史及文件系统秘密扫描
- 04API 与 Web 漏洞测试
- 05基础设施安全检查
- 06生成 Markdown 或 JSON 测试报告
适用场景
- 01对 Web 应用或 API 执行授权测试
- 02在合并前检查依赖与秘密
- 03设置 CI/CD 安全门禁
- 04整理发现并生成渗透测试报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill security-pen-testing安装后在 Claude Code 中输入/security-pen-testing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/attack_patterns.mdowasp_top_10_checklist.mdresponsible_disclosure.mdscripts/dependency_auditor.pypentest_report_generator.pyvulnerability_scanner.py详细介绍
安全渗透测试
用于在攻击者发现漏洞之前主动查找漏洞的实战攻防安全测试技能。这不是合规性检查(参见 senior-secops),也不是安全策略编写(参见 senior-security)——而是通过授权测试,系统地发现漏洞。
目录
概述
此技能的作用
此技能提供开展攻防安全测试的方法、检查清单和自动化工具——主动探测系统,发现可利用的漏洞。涵盖 Web 应用、API、基础设施和供应链安全。
与其他安全技能的区别
| 技能 | 重点 | 方法 |
|---|---|---|
| security-pen-testing(本技能) | 查找漏洞 | 攻防——模拟攻击者的技术 |
| senior-secops | 安全运营 | 防御——监控、事件响应、SIEM |
| senior-security | 安全策略 | 治理——策略、框架、风险登记册 |
| skill-security-auditor | CI/CD 门禁 | 自动化——合并前安全检查 |
前提条件
此处所述的所有测试均以获得系统所有者的书面授权为前提。未经授权的测试违反 CFAA 及全球范围内的同类法律,属于违法行为。开始测试前,务必取得已签署的工作范围或交战规则文件。
OWASP Top 10 系统性审计
使用漏洞扫描工具自动生成检查清单:
# Generate OWASP checklist for a web application
python scripts/vulnerability_scanner.py --target web --scope full
# Quick API-focused scan
python scripts/vulnerability_scanner.py --target api --scope quick --json
快速参考
| # | 类别 | 关键测试 |
|---|---|---|
| A01 | 访问控制失效 | IDOR、垂直权限提升、CORS、JWT 声明操纵、强制浏览 |
| A02 | 加密失效 | TLS 版本、密码哈希、硬编码密钥、弱 PRNG |
| A03 | 注入 | SQLi、NoSQLi、命令注入、模板注入、XSS |
| A04 | 不安全设计 | 速率限制、滥用业务逻辑、绕过多步骤流程 |
| A05 | 安全配置错误 | 默认凭据、调试模式、安全标头、目录列表 |
| A06 | 易受攻击的组件 | 依赖项审计(npm/pip/go)、EOL 检查、已知 CVE |
| A07 | 身份验证失效 | 暴力破解、会话 Cookie 标志、会话失效、绕过 MFA |
| A08 | 完整性失效 | 不安全的反序列化、SRI 检查、CI/CD 流水线完整性 |
| A09 | 日志记录失效 | 身份验证事件日志、日志中的敏感数据、告警阈值 |
| A10 | SSRF | 内部 IP 访问、云元数据端点、DNS 重绑定 |
# Audit dependencies
python scripts/dependency_auditor.py --file package.json --severity high
python scripts/dependency_auditor.py --file requirements.txt --json
请参阅 owasp_top_10_checklist.md,了解各类别的详细测试流程、待检测的代码模式、修复步骤和 CVSS 评分指南。
静态分析
推荐工具: CodeQL(针对项目特定模式的自定义查询)、Semgrep(支持自动修复的基于规则的扫描)、ESLint 安全插件(eslint-plugin-security、eslint-plugin-no-unsanitized)。
需要检测的关键模式:通过字符串拼接造成的 SQL 注入、硬编码的 JWT 密钥、不安全的 YAML/pickle 反序列化、缺少安全中间件(例如未使用 Helmet 的 Express)。
请参阅 attack_patterns.md,了解各种注入类型的代码模式和检测载荷。
依赖漏洞扫描
生态命令: npm audit、pip audit、govulncheck ./...、bundle audit check
CVE 分诊流程:
- 收集:运行各生态的审计工具,汇总结果
- 去重:按 CVE ID 分组,覆盖直接依赖和传递依赖
- 排序优先级:严重 + 可被利用 + 可达 = 立即修复
- 修复:升级、打补丁,或通过补偿性控制措施进行缓解
- 验证:重新运行审计以确认修复,并更新锁文件
python scripts/dependency_auditor.py --file package.json --severity critical --json
密钥扫描
工具: TruffleHog(Git 历史 + 文件系统)、Gitleaks(基于正则表达式,支持自定义规则)。
# Scan git history for verified secrets
trufflehog git file://. --only-verified --json
# Scan filesystem
trufflehog filesystem . --json
集成点: 提交前钩子(gitleaks、trufflehog)、CI/CD 门禁(使用 trufflesecurity/trufflehog@main 的 GitHub Actions)。配置 .gitleaks.toml 以添加自定义规则(AWS 密钥、API 密钥、私钥头)以及测试夹具的白名单。
API 安全测试
身份验证绕过
- JWT 篡改:将
alg改为none、RS256 转 HS256 混淆、修改声明(role: "admin"、exp: 9999999999) - 会话固定:检查身份验证后会话 ID 是否发生变化
授权缺陷
- IDOR/BOLA:在每个端点中更改资源 ID,测试跨用户的读取、更新、删除操作
- BFLA:普通用户尝试访问管理员端点(预期返回 403)
- 批量赋值:在更新请求中添加特权字段(
role、is_admin)
速率限制与 GraphQL
- 速率限制:对身份验证端点快速连续发送请求;超过阈值后预期返回 429
- GraphQL:测试内省(生产环境中应禁用)、查询深度攻击、绕过速率限制的批量变更
有关完整的 JWT 篡改载荷、IDOR 测试方法、BFLA 端点列表、GraphQL 内省/深度/批量攻击模式以及速率限制绕过技术,请参阅 attack_patterns.md。
Web 漏洞测试
| 漏洞 | 关键测试 |
|---|---|
| XSS | 反射型(script/img/svg 载荷)、存储型(持久化字段)、DOM 型(innerHTML + location.hash) |
| CSRF | 不带令牌重放(预期返回 403)、跨会话令牌重放、检查 SameSite Cookie 属性 |
| SQL 注入 | 报错型(' OR 1=1--)、联合查询枚举、基于时间的盲注(SLEEP(5))、基于布尔的盲注 |
| SSRF | 内部 IP、云元数据端点(AWS/GCP/Azure)、IPv6/十六进制/十进制编码绕过 |
| 路径遍历 | ../../../etc/passwd、URL 编码、双重编码绕过 |
有关完整的测试载荷(XSS 过滤器绕过、特定上下文的 XSS、各数据库引擎的 SQL 注入、SSRF 绕过技术以及 DOM 型 XSS 的 source/sink 配对),请参阅 attack_patterns.md。
基础设施安全
关键检查项:
- 云存储:S3 存储桶公共访问(
aws s3 ls s3://bucket --no-sign-request)、存储桶策略、ACL - HTTP 安全头:HSTS、CSP(不允许
unsafe-inline/unsafe-eval)、X-Content-Type-Options、X-Frame-Options、Referrer-Policy - TLS 配置:
nmap --script ssl-enum-ciphers -p 443 target.com或testssl.sh,拒绝 TLS 1.0/1.1、RC4、3DES、出口级密码套件 - 端口扫描:
nmap -sV target.com,标记危险的开放端口(FTP/21、Telnet/23、Redis/6379、MongoDB/27017)
渗透测试报告生成
根据结构化的发现结果生成专业报告:
# Generate markdown report from findings JSON
python scripts/pentest_report_generator.py --findings findings.json --format md --output report.md
# Generate JSON report
python scripts/pentest_report_generator.py --findings findings.json --format json --output report.json
发现结果 JSON 格式
[
{
"title": "SQL Injection in Login Endpoint",
"severity": "critical",
"cvss_score": 9.8,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"category": "A03:2021 - Injection",
"description": "The /api/login endpoint is vulnerable to SQL injection via the email parameter.",
"evidence": "Request: POST /api/login {\"email\": \"' OR 1=1--\", \"password\": \"x\"}\nResponse: 200 OK with admin session token",
"impact": "Full database access, authentication bypass, potential remote code execution",
"remediation": "Use parameterized queries. Replace string concatenation with prepared statements.",
"references": ["https://cwe.mitre.org/data/definitions/89.html"]
}
]
报告结构
- 执行摘要:业务影响、整体风险等级、前三项发现
- 测试范围:测试内容、排除内容、测试日期
- 测试方法:所用工具、测试方式(黑盒/灰盒/白盒)
- 发现结果表:按严重程度排序,附 CVSS 评分
- 详细发现:每项包含描述、证据、影响与修复建议
- 修复优先级矩阵:每项修复的投入与收益对比
- 附录:原始工具输出、完整载荷列表
负责任披露工作流
对于在授权测试中发现的任何漏洞,负责任披露是强制性的。标准时间线为:第 1 天提交报告,第 7 天跟进,第 30 天提供状态更新,第 90 天公开披露。
关键原则: 切勿超出概念验证范围进行利用,对所有通信进行加密,不得访问真实用户数据,并以时间戳记录所有内容。
完整的披露时间线(标准 90 天、加速 30 天、延长 120 天)、沟通模板、法律注意事项、漏洞赏金计划集成以及 CVE 申请流程,请参阅 responsible_disclosure.md。
工作流
工作流 1:快速安全检查(15 分钟)
适用于合并前审查或快速健康检查:
# 1. Generate OWASP checklist
python scripts/vulnerability_scanner.py --target web --scope quick
# 2. Scan dependencies
python scripts/dependency_auditor.py --file package.json --severity high
# 3. Check for secrets in recent commits
# (Use gitleaks or trufflehog as described in Secret Scanning section)
# 4. Review HTTP security headers
curl -sI https://target.com | grep -iE "(strict-transport|content-security|x-frame|x-content-type)"
决策:如发现任何严重或高危问题,阻止合并。
工作流 2:完整渗透测试(多日评估)
第 1 天 — 侦察:
- 梳理攻击面:端点、认证流程、第三方集成
- 运行自动化 OWASP 检查清单(完整范围)
- 对所有清单文件运行依赖审计
- 对完整 git 历史运行密钥扫描
第 2 天 — 手动测试:
- 测试认证与授权(IDOR、BOLA、BFLA)
- 测试注入点(SQLi、XSS、SSRF、命令注入)
- 测试业务逻辑缺陷
- 测试 API 特有漏洞(GraphQL、速率限制、批量赋值)
第 3 天 — 基础设施与报告:
- 检查云存储权限
- 验证 TLS 配置与安全响应头
- 对不必要的服务进行端口扫描
- 将发现汇总为结构化 JSON
- 生成渗透测试报告
# Generate final report
python scripts/pentest_report_generator.py --findings findings.json --format md --output pentest-report.md
工作流 3:CI/CD 安全门禁
每个 PR 均自动执行安全检查:密钥扫描(TruffleHog)、依赖审计(npm audit、pip audit)、SAST(使用 p/security-audit、p/owasp-top-ten 的 Semgrep),以及对预发布环境的安全响应头检查。
门禁策略:严重/高危问题阻止合并;中危问题发出警告;低危/信息级问题仅记录日志。
反模式
- 未经授权在生产环境中测试 — 始终获取书面许可,并尽可能使用预发布/测试环境
- 忽视低危问题 — 低危问题会累积;一连串低危问题可能形成严重的利用路径
- 跳过负责任披露 — 发现的每个漏洞都必须通过正式渠道报告
- 仅依赖自动化工具 — 工具会遗漏业务逻辑缺陷、组合利用链和新型攻击向量
- 在没有明确范围的情况下测试 — 范围蔓延会带来法律责任;需记录哪些在范围内、哪些不在范围内
- 报告中缺少修复指导 — 每个发现都必须包含可操作的修复步骤
- 不安全地存储证据 — 渗透测试证据(截图、载荷、令牌)属于敏感信息;应加密并限制访问
- 一次性测试 — 安全测试必须持续进行;应集成到 CI/CD 中并定期安排评估
交叉引用
| 技能 | 关系 |
|---|---|
| senior-secops | 防御性安全运营 — 监控、事件响应、SIEM 配置 |
| senior-security | 安全政策与治理 — 框架、风险登记册、合规 |
| dependency-auditor | 深度供应链安全 — SBOM、许可证合规、传递性风险 |
| code-reviewer | 代码审查实践 — 包含安全审查清单 |