mcpField
S
security-pen-testing

security-pen-testing

github.com/alirezarezvani安全28.9k843 次安装2 天前更新
代码仓库

关于 security-pen-testing

面向获系统所有者书面授权的安全团队,提供针对应用、API、基础设施及供应链的渗透测试方法、清单与自动化工具。内容覆盖 OWASP 检查、依赖和秘密扫描、手动测试以及结构化报告生成。

主要功能

  1. 01OWASP Top 10 检查清单
  2. 02静态分析与依赖漏洞审计
  3. 03Git 历史及文件系统秘密扫描
  4. 04API 与 Web 漏洞测试
  5. 05基础设施安全检查
  6. 06生成 Markdown 或 JSON 测试报告

适用场景

  1. 01对 Web 应用或 API 执行授权测试
  2. 02在合并前检查依赖与秘密
  3. 03设置 CI/CD 安全门禁
  4. 04整理发现并生成渗透测试报告

安装

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill security-pen-testing

安装后在 Claude Code 中输入/security-pen-testing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
attack_patterns.md
owasp_top_10_checklist.md
responsible_disclosure.md
scripts/
dependency_auditor.py
pentest_report_generator.py
vulnerability_scanner.py

详细介绍

安全渗透测试

用于在攻击者发现漏洞之前主动查找漏洞的实战攻防安全测试技能。这不是合规性检查(参见 senior-secops),也不是安全策略编写(参见 senior-security)——而是通过授权测试,系统地发现漏洞。


目录


概述

此技能的作用

此技能提供开展攻防安全测试的方法、检查清单和自动化工具——主动探测系统,发现可利用的漏洞。涵盖 Web 应用、API、基础设施和供应链安全。

与其他安全技能的区别
技能重点方法
security-pen-testing(本技能)查找漏洞攻防——模拟攻击者的技术
senior-secops安全运营防御——监控、事件响应、SIEM
senior-security安全策略治理——策略、框架、风险登记册
skill-security-auditorCI/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日志记录失效身份验证事件日志、日志中的敏感数据、告警阈值
A10SSRF内部 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 分诊流程:

  1. 收集:运行各生态的审计工具,汇总结果
  2. 去重:按 CVE ID 分组,覆盖直接依赖和传递依赖
  3. 排序优先级:严重 + 可被利用 + 可达 = 立即修复
  4. 修复:升级、打补丁,或通过补偿性控制措施进行缓解
  5. 验证:重新运行审计以确认修复,并更新锁文件
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"]
  }
]
报告结构
  1. 执行摘要:业务影响、整体风险等级、前三项发现
  2. 测试范围:测试内容、排除内容、测试日期
  3. 测试方法:所用工具、测试方式(黑盒/灰盒/白盒)
  4. 发现结果表:按严重程度排序,附 CVSS 评分
  5. 详细发现:每项包含描述、证据、影响与修复建议
  6. 修复优先级矩阵:每项修复的投入与收益对比
  7. 附录:原始工具输出、完整载荷列表

负责任披露工作流

对于在授权测试中发现的任何漏洞,负责任披露是强制性的。标准时间线为:第 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 天 — 侦察:

  1. 梳理攻击面:端点、认证流程、第三方集成
  2. 运行自动化 OWASP 检查清单(完整范围)
  3. 对所有清单文件运行依赖审计
  4. 对完整 git 历史运行密钥扫描

第 2 天 — 手动测试:

  1. 测试认证与授权(IDOR、BOLA、BFLA)
  2. 测试注入点(SQLi、XSS、SSRF、命令注入)
  3. 测试业务逻辑缺陷
  4. 测试 API 特有漏洞(GraphQL、速率限制、批量赋值)

第 3 天 — 基础设施与报告:

  1. 检查云存储权限
  2. 验证 TLS 配置与安全响应头
  3. 对不必要的服务进行端口扫描
  4. 将发现汇总为结构化 JSON
  5. 生成渗透测试报告
# 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),以及对预发布环境的安全响应头检查。

门禁策略:严重/高危问题阻止合并;中危问题发出警告;低危/信息级问题仅记录日志。


反模式

  1. 未经授权在生产环境中测试 — 始终获取书面许可,并尽可能使用预发布/测试环境
  2. 忽视低危问题 — 低危问题会累积;一连串低危问题可能形成严重的利用路径
  3. 跳过负责任披露 — 发现的每个漏洞都必须通过正式渠道报告
  4. 仅依赖自动化工具 — 工具会遗漏业务逻辑缺陷、组合利用链和新型攻击向量
  5. 在没有明确范围的情况下测试 — 范围蔓延会带来法律责任;需记录哪些在范围内、哪些不在范围内
  6. 报告中缺少修复指导 — 每个发现都必须包含可操作的修复步骤
  7. 不安全地存储证据 — 渗透测试证据(截图、载荷、令牌)属于敏感信息;应加密并限制访问
  8. 一次性测试 — 安全测试必须持续进行;应集成到 CI/CD 中并定期安排评估

交叉引用

技能关系
senior-secops防御性安全运营 — 监控、事件响应、SIEM 配置
senior-security安全政策与治理 — 框架、风险登记册、合规
dependency-auditor深度供应链安全 — SBOM、许可证合规、传递性风险
code-reviewer代码审查实践 — 包含安全审查清单

评论

支持 Markdown