Principiante
20 min
OWASP ZAP
Zed Attack Proxy - Scanner de seguridad web open source
¿Qué es OWASP ZAP?
ZAP (Zed Attack Proxy) es una herramienta gratuita y open source para encontrar vulnerabilidades en aplicaciones web. Alternativa a Burp Suite Community, con potentes capacidades de automatización.
Ventajas de ZAP
- ✅ 100% gratis y open source
- ✅ Scanner automático incluido
- ✅ API para CI/CD integration
- ✅ AJAX Spider para SPAs
- ✅ Fuzzer sin lÃmites
- ✅ Comunidad activa
Instalación
# Linux (Debian/Ubuntu) sudo snap install zaproxy --classic # macOS brew install --cask owasp-zap # Windows # Descargar desde https://www.zaproxy.org/download/ # Docker docker pull zaproxy/zap-stable docker run -u zap -p 8080:8080 zaproxy/zap-stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.key=changeme
Modos de Uso
1. Automated Scan
Escaneo automático ideal para principiantes.
# GUI 1. Open ZAP 2. "Automated Scan" tab 3. URL: https://target-site.com 4. "Attack" button 5. Esperar resultados en "Alerts" tab # CLI zap.sh -cmd -quickurl https://target-site.com -quickout /tmp/zap-report.html
2. Manual Explore
Uso como proxy interceptor (como Burp).
# 1. Configurar proxy Manual Explore > URL > Launch Browser # ZAP abre navegador pre-configurado # 2. Navegar sitio target # ZAP registra todos los requests # 3. Analizar Sites tree > Right click > Attack Active Scan > Start Scan # 4. Ver vulnerabilidades Alerts tab > Filter by Risk (High/Medium/Low)
3. API Integration (CI/CD)
Automatizar scans en pipelines.
# Docker ZAP en modo daemon
docker run -d -p 8080:8080 zaproxy/zap-stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.key=my-api-key
# Python API
from zapv2 import ZAPv2
zap = ZAPv2(apikey='my-api-key', proxies={
'http': 'http://127.0.0.1:8080',
'https': 'http://127.0.0.1:8080'
})
# Spider sitio
zap.spider.scan('https://target.com')
# Active scan
zap.ascan.scan('https://target.com')
# Obtener alerts
alerts = zap.core.alerts()
for alert in alerts:
print(f"{alert['risk']}: {alert['alert']}")Scanners Incluidos
Passive Scanner
Analiza tráfico sin enviar requests adicionales.
- • Missing security headers
- • Cookie flags (HttpOnly, Secure)
- • Information disclosure
- • Weak SSL/TLS config
Active Scanner
EnvÃa payloads de ataque (requiere permiso).
- • SQL injection
- • XSS (Reflected, Stored)
- • Path traversal
- • Command injection
- • CSRF
AJAX Spider
Crawler para Single Page Applications.
- • Ejecuta JavaScript
- • Click en elementos DOM
- • Detecta rutas dinámicas
- • Ideal para React/Vue/Angular
Fuzzer
EnvÃa payloads personalizados.
- • Custom wordlists
- • Fuzzing de parámetros
- • Headers, cookies, body
- • Scripts de generación de payloads
GitHub Actions Integration
# .github/workflows/zap-scan.yml
name: ZAP Security Scan
on:
pull_request:
branches: [main]
jobs:
zap_scan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: ZAP Baseline Scan
uses: zaproxy/action-baseline@v0.7.0
with:
target: 'https://staging.example.com'
rules_file_name: '.zap/rules.tsv'
cmd_options: '-a'
- name: Upload Report
uses: actions/upload-artifact@v3
with:
name: zap-report
path: report_html.html