1. OWASP ZAP 环境搭建与实战指南
作为一名长期从事Web安全测试的从业者,我深知一款强大且易用的安全测试工具对于日常工作的重要性。OWASP ZAP(Zed Attack Proxy)正是这样一款工具,它不仅是代理工具,更是功能全面的漏洞扫描器,适合从初学者到专家的所有安全测试人员。
1.1 为什么选择OWASP ZAP?
在众多安全测试工具中,ZAP脱颖而出有以下几个关键原因:
首先,它是完全免费开源的,这意味着你可以无限制地使用所有商业级功能,而不必担心许可证问题。这对于预算有限的安全团队或个人研究者来说至关重要。
其次,ZAP支持跨平台运行,无论你使用的是Windows、Linux还是macOS,甚至是Docker容器环境,都能轻松部署。这种灵活性使得它能够适应各种测试场景。
从功能角度来看,ZAP提供了多种测试模式:你可以进行手动探索测试,也可以设置自动化扫描,还能通过API进行集成测试。这种多模式设计使得它能够满足不同复杂度的测试需求。
提示:对于初学者来说,ZAP的图形界面相对友好;而对于高级用户,其强大的API和命令行支持则提供了极大的灵活性。
1.2 ZAP的核心功能解析
ZAP的核心功能可以概括为以下几个方面:
- 代理功能:作为中间人代理,拦截和修改HTTP/HTTPS请求
- 自动化扫描:包括主动扫描和被动扫描两种模式
- 爬虫功能:自动探索网站结构和链接
- 漏洞检测:内置数百种漏洞检测规则
- API支持:可通过REST API进行自动化测试
- 插件扩展:拥有丰富的插件生态系统
在实际工作中,我经常将这些功能组合使用。比如先使用爬虫功能获取网站结构,然后进行主动扫描发现常见漏洞,最后通过手动测试验证关键功能点的安全性。
2. 环境搭建方法详解
2.1 桌面版安装(推荐初学者)
对于刚接触ZAP的用户,桌面版是最容易上手的选择。以下是各平台的安装指南:
2.1.1 Windows安装
Windows用户可以直接下载安装包进行安装:
- 访问ZAP的GitHub发布页面:
code复制https://github.com/zaproxy/zaproxy/releases/latest - 下载最新版的Windows安装包(如ZAP_2.14.0_windows.exe)
- 双击安装包,按照向导完成安装
- 首次启动时,ZAP会提示创建主目录和选择更新渠道
注意:建议选择"Weekly"更新渠道,这样可以及时获取最新的安全检测规则,但稳定性可能略低于"Stable"渠道。
2.1.2 Linux安装
对于基于Debian的Linux发行版(如Ubuntu),可以通过以下命令安装:
bash复制# 添加ZAP官方仓库
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository ppa:zaproxy/stable
sudo apt update
# 安装ZAP
sudo apt install zaproxy
# 启动ZAP
zaproxy
2.1.3 macOS安装
macOS用户可以通过Homebrew安装,或者直接下载DMG安装包:
bash复制# 使用Homebrew安装
brew install zaproxy
# 或者下载DMG安装包
https://github.com/zaproxy/zaproxy/releases/latest
2.2 Docker部署(适合自动化和集成)
对于需要自动化测试或将ZAP集成到CI/CD流程中的用户,Docker是最佳选择。以下是几种常见的Docker部署方式:
2.2.1 基础运行(带GUI)
bash复制docker run -u zap -p 8080:8080 -p 8090:8090 \
-v $(pwd)/zap:/zap/wrk/:rw \
-it owasp/zap2docker-stable zap-webswing.sh
这个命令会启动一个带有Web界面的ZAP实例,可以通过浏览器访问。
2.2.2 命令行模式
bash复制docker run -u zap -v $(pwd):/zap/wrk/:rw \
owasp/zap2docker-stable zap-baseline.py \
-t https://example.com \
-r testreport.html
这种模式适合自动化扫描,扫描结果会保存为HTML报告。
2.2.3 持久化配置
如果需要保存ZAP的配置和会话数据,可以使用以下命令:
bash复制mkdir zap-data
docker run -u zap -v $(pwd)/zap-data:/home/zap/.ZAP/:rw \
owasp/zap2docker-stable
这样,即使容器重启,你的配置和会话也不会丢失。
2.3 Java JAR版本(灵活部署)
如果你已经安装了Java环境(JDK 11+),可以直接运行ZAP的JAR包:
bash复制# 下载ZAP核心JAR
wget https://github.com/zaproxy/zaproxy/releases/download/v2.14.0/zap-2.14.0.jar
# 运行(无GUI)
java -jar zap-2.14.0.jar -daemon -port 8080 -host 0.0.0.0
# 带GUI运行
java -jar zap-2.14.0.jar
# 使用自定义配置文件
java -jar zap-2.14.0.jar -config api.key=changeme
这种方式特别适合需要自定义部署场景的高级用户。
2.4 源代码编译(开发者)
如果你是开发者或需要修改ZAP源代码,可以按照以下步骤从源代码构建:
bash复制# 克隆仓库
git clone https://github.com/zaproxy/zaproxy.git
cd zaproxy
# 构建项目(需要Maven和JDK 11+)
./gradlew build
# 运行开发版本
./gradlew run
# 打包发行版
./gradlew dist
这种方式可以让你获取最新的开发版功能,但稳定性可能不如正式发布版。
3. 初始配置与优化
3.1 首次启动配置
首次启动ZAP时,建议进行以下配置:
-
选择模式:
- Standard: 标准模式(推荐大多数用户)
- Safe: 安全模式(不会发起攻击性请求)
- Protected: 保护模式(仅在指定范围内测试)
-
配置代理:
- 默认端口:8080
- 接口:localhost(仅本地访问)或0.0.0.0(允许远程连接)
-
更新设置:
- 启用自动更新
- 选择发布渠道:Weekly(新功能)或Stable(稳定)
-
性能优化:
- Tools → Options → Database
- Max Body Size: 根据需求调整(默认为1MB,大型应用可设为10MB)
- Tools → Options → Display
- Max Display Size: 增加显示内容大小(如10000)
- Tools → Options → Database
3.2 代理配置详解
要使用ZAP的代理功能,需要正确配置浏览器或系统代理:
3.2.1 Firefox代理配置
- 打开Firefox → 设置 → 网络设置
- 手动配置代理:
- HTTP Proxy: 127.0.0.1
- Port: 8080
- 勾选"同时为所有协议使用此代理"
3.2.2 Chrome命令行启动
bash复制google-chrome --proxy-server="http://127.0.0.1:8080" --ignore-certificate-errors
3.2.3 系统级代理配置(Linux)
bash复制export http_proxy="http://127.0.0.1:8080"
export https_proxy="http://127.0.0.1:8080"
3.2.4 与其他工具协同工作
ZAP可以与其他安全测试工具如Burp Suite协同工作。例如,将ZAP作为Burp Suite的上游代理:
- 在Burp Suite中:Proxy → Options → Upstream Proxy Servers
- 添加:127.0.0.1:8080
3.3 API配置
ZAP提供了强大的API支持,可以实现自动化测试:
3.3.1 启用API
- 进入Tools → Options → API
- 勾选"启用API"
- 设置API密钥(建议修改默认值)
- 谨慎开启"允许远程访问"
3.3.2 测试API
bash复制curl "http://localhost:8080/JSON/core/view/version?apikey=your-api-key"
3.3.3 使用Python控制
python复制from zapv2 import ZAPv2
zap = ZAPv2(apikey='your-api-key', proxies={'http': 'http://127.0.0.1:8080'})
version = zap.core.version
print(f"ZAP Version: {version}")
4. 核心功能实战
4.1 手动探索测试
手动探索测试是安全测试的基础,ZAP提供了强大的工具支持:
- 启动ZAP并配置浏览器代理
- 正常浏览目标网站
- ZAP会自动记录所有HTTP请求
- 对关键功能点进行手动测试
手动测试技巧:
- 右键菜单 → Attack → 主动扫描节点
- 右键菜单 → 在请求中注入模糊测试载荷
- 拦截和修改请求/响应
- 使用"Resend"功能重复发送修改后的请求
在实际测试中,我通常会重点关注以下内容:
- 用户认证和会话管理
- 输入验证和输出编码
- 敏感数据传输和存储
- 访问控制和权限管理
4.2 自动化扫描
ZAP提供了多种自动化扫描方式,可以大大提高测试效率:
4.2.1 快速扫描
- 进入Tools → Quick Start → Automated Scan
- 输入目标URL
- 点击"Attack"开始扫描
4.2.2 蜘蛛扫描(爬虫)
蜘蛛扫描用于发现网站的结构和链接:
bash复制# 命令行蜘蛛:
docker run owasp/zap2docker-stable zap-spider.py \
-t http://example.com \
-c config/spider.conf
参数建议:
- 最大深度:5-10(防止爬取过深)
- 最大子节点数:1000(防止爬取过多页面)
4.2.3 主动扫描(漏洞检测)
主动扫描会主动发送测试请求来检测漏洞:
- 右键目标 → Attack → Active Scan...
- 选择扫描策略:Default Policy
- 调整扫描强度(Low/Medium/High)
注意:高强度扫描可能会对目标系统造成较大负载,建议在非生产环境或维护窗口期进行。
4.3 被动扫描
被动扫描是ZAP的独特功能,它在后台监控所有经过代理的流量,自动检测常见漏洞:
被动扫描特点:
- 实时监控代理流量
- 对系统性能影响小
- 自动检测常见漏洞
配置被动扫描规则:
- Tools → Options → Passive Scan Rules
- 启用/禁用特定规则
- 调整告警阈值
被动扫描发现的常见漏洞:
- XSS(跨站脚本)
- SQL注入提示
- 敏感信息泄露
- 安全头部缺失
- 不安全的Cookie配置
在实际工作中,我通常会保持被动扫描始终开启,它可以在日常测试中持续发现潜在问题。
5. 插件扩展与市场
5.1 安装管理插件
ZAP的强大功能可以通过插件进一步扩展:
5.1.1 通过GUI安装
- 进入Marketplace
- 浏览或搜索需要的插件
- 点击安装
5.1.2 命令行安装
bash复制# Docker环境:
docker run owasp/zap2docker-stable zap.sh -cmd \
-addoninstall ascanrulesBeta
5.1.3 常用插件推荐
- Selenium:浏览器自动化集成
- OpenAPI:API文档支持
- GraphQL:GraphQL端点测试
- JWT:JWT令牌分析
- FuzzDB:模糊测试载荷库
- Retire.js:JavaScript漏洞检测
5.2 自定义插件开发
对于有特殊需求的用户,可以开发自己的ZAP插件。以下是一个简单插件示例:
java复制package org.zaproxy.zap.extension.helloworld;
import org.parosproxy.paros.Constant;
import org.parosproxy.paros.extension.ExtensionAdaptor;
import org.parosproxy.paros.extension.ExtensionHook;
public class ExtensionHelloWorld extends ExtensionAdaptor {
@Override
public String getAuthor() {
return "Your Name";
}
@Override
public String getName() {
return "HelloWorldExtension";
}
@Override
public String getDescription() {
return Constant.messages.getString("helloworld.desc");
}
@Override
public void hook(ExtensionHook extensionHook) {
super.hook(extensionHook);
// 添加菜单项、按钮等
}
@Override
public boolean supportsDb(String type) {
return true;
}
}
开发完成后,可以将插件打包为ZAP插件格式(.zap文件)进行分发。
6. 扫描策略与配置
6.1 自定义扫描策略
ZAP允许用户自定义扫描策略,以适应不同的测试需求:
xml复制<!-- 扫描策略配置文件 -->
<!-- 保存为:policy.xml -->
<policies>
<scanner>
<scannerLevel>HIGH</scannerLevel>
<strength>MEDIUM</strength>
<alertThreshold>MEDIUM</alertThreshold>
</scanner>
<rules>
<!-- 启用特定规则 -->
<rule id="40012" enabled="true"/> <!-- SQL Injection -->
<rule id="40016" enabled="true"/> <!-- Cross-site Scripting -->
<rule id="40018" enabled="false"/> <!-- Directory Browsing -->
<!-- 自定义规则设置 -->
<rule id="40012">
<threshold>MEDIUM</threshold>
<strength>HIGH</strength>
</rule>
</rules>
<attackStength>HIGH</attackStength>
<alertThreshold>MEDIUM</alertThreshold>
</policies>
加载策略:
bash复制# 命令行:
zap-cli --zap-path /path/to/zap.sh policies -l policy.xml
# GUI:Policy → Import
6.2 排除规则和过滤
在实际测试中,我们经常需要排除某些路径或参数:
6.2.1 上下文配置
- Session → New Context
- 设置包含/排除规则
regex复制Include in Context: ^https://example.com/.*
Exclude from Context:
- ^https://example.com/logout
- ^https://example.com/admin/.*
- .*\.css$
- .*\.js$
6.2.2 技术排除
- Tools → Options → Active Scan
- 排除特定参数:
- sessionid
- csrf_token
- authenticity_token
这些排除设置可以避免测试过程中破坏应用状态或产生大量误报。
7. 实战演练:完整测试流程
7.1 Web应用全面测试
以下是一个完整的Web应用测试流程示例:
bash复制# 步骤1:环境准备
docker run -u zap -p 8080:8080 -d \
--name zap \
owasp/zap2docker-stable zap.sh -daemon \
-port 8080 -host 0.0.0.0 \
-config api.disablekey=true
# 步骤2:爬取网站
curl "http://localhost:8080/JSON/spider/action/scan/?apikey=&url=http://target.com&maxChildren=100"
# 步骤3:等待爬取完成
while true; do
status=$(curl -s "http://localhost:8080/JSON/spider/view/status/?apikey=" | jq -r '.status')
echo "Spider status: $status"
if [ "$status" = "100" ]; then break; fi
sleep 5
done
# 步骤4:主动扫描
curl "http://localhost:8080/JSON/ascan/action/scan/?apikey=&url=http://target.com"
# 步骤5:生成报告
curl "http://localhost:8080/OTHER/core/other/htmlreport/?apikey=" > report.html
7.2 REST API测试
对于API测试,可以使用以下Python脚本自动化流程:
python复制import time
import requests
import json
class ZAPAPITester:
def __init__(self, zap_host='localhost', zap_port=8080, api_key=''):
self.base_url = f"http://{zap_host}:{zap_port}"
self.api_key = api_key
def test_endpoint(self, target_url, api_endpoints):
"""测试 API 端点"""
# 1. 包含目标到上下文
context_id = self._create_context(target_url)
# 2. 手动探索 API
for endpoint in api_endpoints:
self._explore_endpoint(target_url + endpoint)
# 3. 蜘蛛扫描
self._run_spider(target_url)
# 4. 主动扫描
self._run_active_scan(target_url)
# 5. 获取结果
alerts = self._get_alerts()
return alerts
# 其他方法实现...
7.3 身份认证网站测试
测试需要身份认证的网站时,可以使用以下脚本配置认证:
bash复制#!/bin/bash
# auth_test.sh - 认证网站测试脚本
ZAP_HOST="localhost"
ZAP_PORT="8080"
API_KEY=""
TARGET="https://auth.example.com"
USERNAME="testuser"
PASSWORD="testpass123"
# 1. 创建上下文
echo "创建测试上下文..."
CONTEXT_NAME="AuthTest"
curl -s "http://$ZAP_HOST:$ZAP_PORT/JSON/context/action/newContext/?apikey=$API_KEY&contextName=$CONTEXT_NAME"
# 2. 配置认证
echo "配置表单认证..."
AUTH_CONFIG=$(cat <<EOF
{
"methodName": "formBasedAuthentication",
"methodConfigParams": "loginUrl=https://auth.example.com/login&loginRequestData=username={%username%}&password={%password%}",
"loggedInIndicator": "Logout",
"loggedOutIndicator": "Login"
}
EOF
)
curl -s -X POST "http://$ZAP_HOST:$ZAP_PORT/JSON/authentication/action/setAuthenticationMethod/?apikey=$API_KEY&contextId=1" \
-H "Content-Type: application/json" \
-d "$AUTH_CONFIG"
# 其余步骤...
8. 报告生成与分析
8.1 生成多种格式报告
ZAP支持生成多种格式的报告:
bash复制# HTML报告(默认)
curl "http://localhost:8080/OTHER/core/other/htmlreport/?apikey=" > report.html
# XML报告
curl "http://localhost:8080/OTHER/core/other/xmlreport/?apikey=" > report.xml
# JSON报告
curl "http://localhost:8080/JSON/core/view/alerts/?apikey=&baseurl=" > report.json
# Markdown报告
curl "http://localhost:8080/OTHER/core/other/mdreport/?apikey=" > report.md
8.2 自定义报告模板
你可以创建自定义的HTML报告模板:
html复制<!DOCTYPE html>
<html>
<head>
<title>安全测试报告 - {{SITENAME}}</title>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
.risk-high { color: #d9534f; }
.risk-medium { color: #f0ad4e; }
.risk-low { color: #5bc0de; }
.risk-info { color: #5cb85c; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; border: 1px solid #ddd; }
th { background-color: #f5f5f5; }
</style>
</head>
<body>
<h1>安全测试报告</h1>
<p><strong>目标网站:</strong> {{SITENAME}}</p>
<p><strong>测试时间:</strong> {{DATE}}</p>
<p><strong>ZAP 版本:</strong> {{VERSION}}</p>
<h2>漏洞统计</h2>
<table>
<tr>
<th>风险等级</th>
<th>数量</th>
<th>比例</th>
</tr>
{{RISKCOUNT}}
</table>
<h2>详细漏洞</h2>
{{ALERTS}}
</body>
</html>
8.3 数据分析脚本
以下Python脚本可以帮助分析ZAP生成的JSON报告:
python复制import json
from collections import Counter
import matplotlib.pyplot as plt
class ZAPReportAnalyzer:
def __init__(self, report_file):
with open(report_file, 'r') as f:
self.data = json.load(f)
def analyze_risks(self):
"""分析风险分布"""
risks = [alert['risk'] for alert in self.data['alerts']]
risk_counts = Counter(risks)
print("风险分布:")
for risk, count in risk_counts.items():
print(f" {risk}: {count}")
return risk_counts
# 其他分析方法...
# 使用示例
if __name__ == "__main__":
analyzer = ZAPReportAnalyzer('zap_report.json')
analyzer.analyze_risks()
analyzer.generate_charts()
9. 集成与自动化
9.1 CI/CD集成(Jenkins)
以下是一个Jenkinsfile示例,展示如何将ZAP集成到CI/CD流程中:
groovy复制pipeline {
agent any
environment {
ZAP_HOST = 'localhost'
ZAP_PORT = '8080'
TARGET_URL = 'https://app.example.com'
}
stages {
stage('启动 ZAP') {
steps {
sh '''
docker run -d --name zap \
-p 8080:8080 \
-v $(pwd)/zap:/zap/wrk/:rw \
owasp/zap2docker-stable \
zap.sh -daemon -port 8080 -host 0.0.0.0 \
-config api.disablekey=true
'''
sleep 30 # 等待 ZAP 启动
}
}
stage('运行扫描') {
steps {
sh '''
# 运行基线扫描
docker exec zap zap-baseline.py \
-t ${TARGET_URL} \
-r baseline_report.html \
-I
'''
}
}
stage('分析结果') {
steps {
sh '''
# 检查是否有高风险漏洞
HIGH_RISKS=$(grep -c "Risk High" zap_report.html || true)
if [ "$HIGH_RISKS" -gt 0 ]; then
echo "发现高风险漏洞!"
exit 1
fi
'''
}
}
}
}
9.2 GitHub Actions集成
以下是一个GitHub Actions工作流示例:
yaml复制name: ZAP Security Scan
on:
push:
branches: [ main, develop ]
schedule:
- cron: '0 0 * * 0' # 每周日运行
jobs:
zap-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Start ZAP
run: |
docker run -d --name zap \
-p 8080:8080 \
-v ${{ github.workspace }}/reports:/zap/wrk/:rw \
owasp/zap2docker-stable \
zap.sh -daemon -port 8080 -host 0.0.0.0 \
-config api.disablekey=true
sleep 30
- name: Run Baseline Scan
run: |
docker exec zap zap-baseline.py \
-t ${{ vars.TARGET_URL }} \
-r baseline_report.html \
-x report.xml \
-J report.json \
-I
- name: Upload Reports
uses: actions/upload-artifact@v2
with:
name: zap-reports
path: reports/
- name: Cleanup
run: docker stop zap && docker rm zap || true
10. 高级功能与技巧
10.1 自定义脚本编写
ZAP支持使用JavaScript编写自定义脚本,以下是一个检测敏感数据的脚本示例:
javascript复制// ZAP脚本示例:自定义警报
var Pattern = Java.type('java.util.regex.Pattern');
// 敏感数据正则表达式
var patterns = {
'API Key': /(?:key|api[_-]?key)[\s]*[:=][\s]*['"]?([a-zA-Z0-9]{32,})['"]?/i,
'AWS Access Key': /AKIA[0-9A-Z]{16}/,
'Password in URL': /password=[^&\s]+/i
};
function sendingRequest(msg, initiator, helper) {
// 检查请求中的敏感数据
var request = msg.getRequestHeader().toString();
for (var type in patterns) {
var match = patterns[type].exec(request);
if (match) {
raiseAlert(msg, type, match[0]);
}
}
}
function raiseAlert(msg, alertType, evidence) {
// 创建警报
helper.newAlert()
.setName('Sensitive Data Exposure: ' + alertType)
.setRisk(2) // High
.setConfidence(3) // High
.setDescription('Sensitive data of type "' + alertType + '" was found.')
.setSolution('Remove or encrypt the sensitive data.')
.setEvidence(evidence)
.setMessage(msg)
.raise();
}
10.2 性能优化配置
对于大型网站的扫描,性能优化尤为重要。以下是一个优化配置示例:
ini复制# zap.conf - 性能优化配置
# JVM内存配置
JAVA_OPTS="-Xmx4g -Xms2g"
# 数据库配置
DB_MAX_SIZE=500
DB_COMPACT=10
# 线程池配置
SCANNER_THREAD_PER_HOST=2
SPIDER_THREAD_COUNT=5
# 扫描配置
MAX_RULE_DURATION=60
MAX_SCAN_DURATION_IN_MINS=120
# 网络配置
CONNECTION_TIMEOUT=30
MAX_RETRIES_ON_IO_ERROR=3
11. 企业级部署架构
11.1 分布式扫描架构
对于大型企业环境,可以使用分布式扫描架构提高效率:
yaml复制# docker-compose-zap-cluster.yml
version: '3.8'
services:
# ZAP主节点
zap-master:
image: owasp/zap2docker-stable
command: zap.sh -daemon -port 8090 -host 0.0.0.0 -config api.key=master-key
ports:
- "8090:8090"
volumes:
- zap-master-data:/home/zap/.ZAP
# ZAP工作节点
zap-worker-1:
image: owasp/zap2docker-stable
command: zap.sh -daemon -port 8091 -host 0.0.0.0 -config api.key=worker1 -config connection.proxyChain.port=8090 -config connection.proxyChain.hostName=zap-master
depends_on:
- zap-master
volumes:
- zap-worker1-data:/home/zap/.ZAP
# 管理界面
zap-manager:
build: ./zap-manager
ports:
- "8080:8080"
environment:
- ZAP_MASTER=http://zap-master:8090
- ZAP_WORKERS=zap-worker-1:8091
depends_on:
- zap-master
- zap-worker-1
volumes:
zap-master-data:
zap-worker1-data:
12. 故障排除与维护
12.1 常见问题解决
在使用ZAP过程中,可能会遇到以下常见问题:
-
ZAP启动失败:
- 检查Java版本(需要Java 11+)
- 检查端口占用:
netstat -tlnp | grep :8080
-
代理连接问题:
- 检查浏览器代理设置
- 检查防火墙规则:
sudo ufw allow 8080
-
扫描速度慢:
- 调整扫描策略
- 减少扫描线程
- 排除静态资源
-
内存不足:
- 增加JVM内存:编辑zap.sh或zap.bat,修改
JAVA_OPTS="-Xmx4g"
- 增加JVM内存:编辑zap.sh或zap.bat,修改
12.2 调试脚本
以下脚本可以帮助收集ZAP的调试信息:
bash复制#!/bin/bash
# zap_debug.sh - 调试脚本
echo "=== ZAP Debug Information ==="
echo "Time: $(date)"
echo
echo "1. System Information"
echo "---------------------"
uname -a
echo "Java version:"
java -version 2>&1
echo
echo "2. ZAP Process"
echo "--------------"
ps aux | grep zap
echo
echo "3. Network Status"
echo "-----------------"
netstat -tlnp | grep :8080
echo
echo "4. ZAP Logs"
echo "-----------"
if [ -f ~/.ZAP/zap.log ]; then
tail -50 ~/.ZAP/zap.log
else
echo "ZAP log not found"
fi
13. 开始你的ZAP之旅
13.1 学习路径建议
-
第1-2周:基础操作
- 手动测试技巧
- 蜘蛛和主动扫描
- 报告生成
-
第3-4周:中级技能
- 上下文和认证配置
- 自定义扫描策略
- 插件使用
-
第5-8周:高级应用
- API自动化
- 自定义脚本开发
- CI/CD集成
13.2 实战练习目标
-
OWASP Juice Shop
- 目标: 找出所有OWASP Top 10漏洞
- 时间: 8小时
- 要求: 生成详细报告
-
DVWA (Damn Vulnerable Web App)
- 目标: 手动和自动结合测试
- 时间: 4小时
- 要求: 对比不同扫描策略结果
-
真实网站测试(授权)
- 目标: 完整安全评估
- 时间: 16小时
- 要求: 提供修复建议
重要提醒:
- 仅在授权范围内进行安全测试
- 遵守法律法规和道德准则
- 尊重隐私和数据保护