#!/bin/bash
# List of URLs to scan
URLS=(
)
# File paths
TEMPLATE_FILE="zap.yaml"
GENERATED_FILE="zap-current.yaml"
REPORT_DIR="$(pwd)/reports"
# Create reports directory
mkdir -p "$REPORT_DIR"
for url in "${URLS[@]}"; do
echo "Scanning: $url"
# Sanitize URL to a safe file name (e.g., example1_com.html)
safe_name=$(echo "$url" | sed -E 's|https?://||; s|/|_|g; s|[^a-zA-Z0-9_]|_|g')
report_file="${safe_name}.html"
# Replace placeholders in YAML
sed \
-e "s|{{TARGET_URL}}|$url|g" \
-e "s|{{REPORT_FILENAME}}|$report_file|g" \
"$TEMPLATE_FILE" > "$GENERATED_FILE"
echo "Generated YAML:"
cat "$GENERATED_FILE"
# Run ZAP scan via Docker
docker container run --rm -v "$(pwd)":/zap/wrk/:rw -t zaproxy/zap-weekly zap.sh -cmd -autorun /zap/wrk/$GENERATED_FILE
echo "Report saved: reports/$report_file"
echo "----------------------------------------"
done
# Cleanup
rm -f "$GENERATED_FILE"