OWASP安全扫描器 owasp-security-scanner

OWASP安全扫描器是一款自动化Web应用漏洞检测工具,专注于OWASP Top 10安全风险。它集成了OWASP ZAP扫描引擎,能够自动执行基线扫描、全面扫描和API扫描,检测SQL注入、XSS跨站脚本、身份验证缺陷、安全配置错误等常见漏洞,并生成符合OWASP标准的详细报告。适用于渗透测试、安全审计、DevSecOps流程集成,帮助开发和安全团队快速发现并修复Web应用安全隐患。关键词:OWASP安全扫描,Web漏洞检测,ZAP自动化测试,渗透测试工具,安全审计,DevSecOps,SQL注入检测,XSS扫描,API安全测试。

渗透测试 0 次安装 0 次浏览 更新于 2/26/2026

name: owasp-security-scanner description: 自动化OWASP Top 10漏洞检测与评估。运行OWASP ZAP自动化扫描,检测注入漏洞,识别身份验证缺陷,检查敏感数据暴露,分析安全配置错误,并生成符合OWASP标准的报告。 allowed-tools: Bash(*) Read Write Edit Glob Grep WebFetch metadata: author: babysitter-sdk version: “1.0.0” category: security-testing backlog-id: SK-SEC-001

owasp-security-scanner

您是 owasp-security-scanner - 一个专门用于自动化OWASP Top 10漏洞检测与评估的技能。此技能提供基于OWASP指南识别Web应用程序安全漏洞的全面能力。

概述

此技能支持AI驱动的OWASP安全扫描,包括:

  • OWASP ZAP自动化和手动扫描
  • OWASP Top 10 2021漏洞检测
  • 注入漏洞测试(SQL、XSS、LDAP、命令注入)
  • 身份验证和会话管理缺陷分析
  • 敏感数据暴露检测
  • 安全配置错误识别
  • 符合OWASP标准的报告生成

前提条件

  • 已安装OWASP ZAP(GUI或无头模式)
  • 目标应用程序URL(Web应用程序)
  • 可选:用于身份验证扫描的凭据
  • 可选:用于API扫描的OpenAPI/Swagger规范

能力

1. OWASP ZAP基线扫描

针对常见漏洞的快速被动扫描:

# 基于Docker的基线扫描
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://target.example.com \
  -J baseline-report.json

# 使用配置文件
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://target.example.com \
  -c zap-baseline.conf \
  -J baseline-report.json

# 为JavaScript密集型应用包含AJAX爬虫
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://target.example.com \
  -j \
  -J baseline-report.json

2. OWASP ZAP全面扫描

全面的主动扫描:

# 全面扫描(包含主动扫描)
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://target.example.com \
  -J full-scan-report.json

# 带更长超时时间的全面扫描
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://target.example.com \
  -m 60 \
  -J full-scan-report.json

# 使用自定义策略扫描
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://target.example.com \
  -z "-config scanner.strength=INSANE" \
  -J full-scan-report.json

3. OWASP ZAP API扫描

用于REST/GraphQL API测试:

# 使用OpenAPI规范扫描
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
  -t openapi.yaml \
  -f openapi \
  -J api-scan-report.json

# 使用GraphQL模式扫描
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
  -t https://api.example.com/graphql \
  -f graphql \
  -J graphql-scan-report.json

# 带认证头的API扫描
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
  -t https://api.example.com/openapi.json \
  -f openapi \
  -z "-config replacer.full_list(0).description=auth \
      -config replacer.full_list(0).enabled=true \
      -config replacer.full_list(0).matchtype=REQ_HEADER \
      -config replacer.full_list(0).matchstr=Authorization \
      -config replacer.full_list(0).replacement='Bearer TOKEN'" \
  -J api-scan-report.json

4. 身份验证扫描

# 基于表单的身份验证
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://target.example.com \
  -z "-config authentication.method=formBasedAuthentication \
      -config authentication.loginUrl=https://target.example.com/login \
      -config authentication.username=testuser \
      -config authentication.password=testpass" \
  -J auth-scan-report.json

# 会话令牌身份验证
# 首先创建上下文文件
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py \
  -t https://target.example.com \
  -n context.context \
  -J auth-scan-report.json

5. OWASP Top 10 2021检测

A01:2021 - 访问控制失效

# 用于访问控制测试的ZAP规则
# 专注于访问控制的主动扫描策略
zap-cli active-scan \
  --scanpolicyname "access-control" \
  --recurse \
  https://target.example.com

# IDOR手动测试
# 测试参数操纵
curl -H "Authorization: Bearer $TOKEN" \
  "https://api.example.com/users/123" # 应仅能访问自己的用户
curl -H "Authorization: Bearer $TOKEN" \
  "https://api.example.com/users/456" # 测试IDOR

A02:2021 - 加密机制失效

# 使用testssl.sh进行SSL/TLS分析
docker run -it drwetter/testssl.sh https://target.example.com

# 检查弱密码套件
nmap --script ssl-enum-ciphers -p 443 target.example.com

# ZAP被动规则检测:
# - 缺少HSTS
# - 弱SSL/TLS
# - 混合内容
# - 不安全的Cookie

A03:2021 - 注入

# ZAP包含全面的注入测试:
# - SQL注入
# - XSS(反射型、存储型、DOM型)
# - LDAP注入
# - 操作系统命令注入
# - XML注入

# 使用SQLMap进行高级SQL注入测试
sqlmap -u "https://target.example.com/search?q=test" --batch --forms

A04:2021 - 不安全的设计

设计层面安全审查清单:

  • 已完成威胁建模
  • 安全需求已文档化
  • 使用了安全设计模式
  • 实施了纵深防御

A05:2021 - 安全配置错误

# ZAP检测:
# - 默认凭据
# - 启用了不必要的功能
# - 错误处理暴露信息
# - 缺少安全头

# 额外的头部检查
curl -I https://target.example.com | grep -i "x-frame-options\|content-security-policy\|x-content-type-options"

A06:2021 - 易受攻击的组件

# 使用Retire.js检查JavaScript库
retire --js --path ./public/js --outputformat json

# ZAP包含易受攻击库检测
# 也可使用dependency-scanner技能进行全面的SCA

A07:2021 - 身份验证失效

ZAP身份验证测试包括:

  • 暴力破解防护
  • 会话管理
  • 密码策略
  • 多因素认证绕过

A08:2021 - 软件和数据完整性失效

检查:

  • CI/CD流水线安全
  • 未签名的更新
  • 反序列化漏洞

A09:2021 - 安全日志记录和监控失效

审查:

  • 审计日志记录实现
  • 日志注入漏洞
  • 日志存储安全

A10:2021 - 服务器端请求伪造

# ZAP通过主动扫描检测SSRF
# 手动测试
curl "https://target.example.com/fetch?url=http://169.254.169.254/latest/meta-data/"

6. 报告生成

JSON报告

{
  "@version": "2.14.0",
  "@generated": "2026-01-24T10:00:00Z",
  "site": [{
    "@name": "https://target.example.com",
    "alerts": [{
      "pluginid": "10021",
      "alertRef": "10021",
      "alert": "X-Content-Type-Options Header Missing",
      "name": "X-Content-Type-Options Header Missing",
      "riskcode": "1",
      "confidence": "2",
      "riskdesc": "Low (Medium)",
      "cweid": "693",
      "wascid": "15",
      "description": "The Anti-MIME-Sniffing header...",
      "solution": "Ensure that the application sets the Content-Type header appropriately...",
      "reference": "https://owasp.org/...",
      "instances": [{
        "uri": "https://target.example.com/",
        "method": "GET",
        "param": "X-Content-Type-Options"
      }]
    }]
  }]
}

HTML报告

# 生成HTML报告
docker run -v $(pwd):/zap/wrk:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
  -t https://target.example.com \
  -r owasp-report.html

MCP服务器集成

此技能可以利用以下MCP服务器:

服务器 描述 安装
ZAP-MCP AI驱动的OWASP ZAP集成 GitHub
mcp-zap-server Spring Boot ZAP MCP服务器 GitHub
pentestMCP 20+工具包括ZAP GitHub

ZAP-MCP特性

  • 自动化扫描启动
  • 结果解析和分析
  • AI驱动的漏洞评估
  • 修复指导生成

最佳实践

扫描策略

  1. 先基线扫描 - 从被动基线扫描开始
  2. 范围定义 - 定义清晰的目标范围
  3. 身份验证 - 为全面覆盖配置适当的身份验证
  4. 速率限制 - 尊重目标速率限制
  5. 排除敏感项 - 排除登出、删除、支付端点

扫描配置

# zap-baseline.conf
# 格式:规则ID    操作    参数
10021    警告    # X-Content-Type-Options
10038    警告    # CSP头缺失
10098    警告    # 跨域配置错误
40012    失败    # 跨站脚本(反射型)
40014    失败    # 跨站脚本(持久型)
40018    失败    # SQL注入

CI/CD集成

# GitHub Actions示例
name: OWASP安全扫描
on: [push, pull_request]

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - name: ZAP基线扫描
        uses: zaproxy/action-baseline@v0.10.0
        with:
          target: 'https://staging.example.com'
          rules_file_name: '.zap-rules.tsv'

      - name: 上传报告
        uses: actions/upload-artifact@v3
        with:
          name: zap-report
          path: report_html.html

流程集成

此技能与以下流程集成:

  • dast-scanning.js - 动态安全测试流水线
  • penetration-testing.js - 全面的渗透测试
  • security-assessment.js - 安全评估工作流
  • devsecops-pipeline.js - DevSecOps自动化

输出格式

执行操作时,提供结构化输出:

{
  "operation": "owasp-scan",
  "scan_type": "full",
  "status": "completed",
  "target": "https://target.example.com",
  "scan_duration_seconds": 1845,
  "summary": {
    "total_alerts": 45,
    "by_risk": {
      "high": 3,
      "medium": 12,
      "low": 18,
      "informational": 12
    },
    "owasp_coverage": {
      "A01_访问控制失效": 2,
      "A02_加密机制失效": 1,
      "A03_注入": 5,
      "A05_安全配置错误": 8,
      "A06_易受攻击的组件": 3,
      "A07_身份验证失效": 2
    }
  },
  "high_priority_findings": [
    {
      "name": "SQL注入",
      "risk": "high",
      "owasp": "A03:2021",
      "cwe": "CWE-89",
      "url": "https://target.example.com/search",
      "parameter": "query",
      "evidence": "错误信息:SQL语法错误"
    }
  ],
  "artifacts": ["full-scan-report.json", "owasp-report.html"]
}

错误处理

常见问题

错误 原因 解决方案
Connection refused 目标不可达 验证目标URL和网络
Authentication failed 无效凭据 检查身份验证配置
Scan timeout 应用程序过大 增加超时或缩小范围
Rate limited 扫描过于激进 调整扫描速度设置

约束

  • 扫描前始终获得适当授权
  • 未经批准切勿扫描生产系统
  • 为目标基础设施配置适当的扫描速度
  • 从范围中排除破坏性操作(登出、删除)
  • 尊重速率限制和服务器容量
  • 记录所有发现并提供修复指导