Bypass de WAF em HTTP/2: a camada de proteção encaminha a solicitação antes mesmo de ver o corpo
⚔️ Técnicas e Métodos de Ataque2026-06-08, 14:47
Diyan Apostolov testou seis proxies reversos e encontrou bypasses de WAF em cinco deles — todos enraizados na arquitetura HTTP/2.
No HTTP/1.1, cabeçalhos e corpo são transmitidos juntos, permitindo que um WAF inspecione toda a solicitação antes de tomar uma decisão. No HTTP/2, eles são enviados separadamente: primeiro quadros HEADERS, depois quadros DATA contendo o corpo.
Um atacante pode atrasar intencionalmente o quadro DATA. Se o WAF operar como um serviço externo, o proxy pode solicitar um veredito imediatamente após receber os cabeçalhos, sem esperar pelo corpo. O WAF vê uma solicitação efetivamente vazia e retorna "allow". O proxy então encaminha a solicitação ao backend, enquanto o corpo chega mais tarde.
Como resultado, a aplicação pode começar a processar a solicitação antes que o WAF tenha inspecionado a carga útil.
T+0 ms HEADERS received
T+1 ms WAF sees only headers → allow
T+500 ms DATA frame with payload arrives
T+501 ms request already forwarded to backend
T+502 ms WAF finally sees the body → blockO artigo também examina outras classes de bypass:
• a carga útil é colocada além dos primeiros 64 KB do corpo da solicitação, que o WAF não inspeciona;
• a solicitação passa por um serviço ForwardAuth que valida apenas cabeçalhos e nunca vê o corpo;
• o WAF e o backend analisam URLs de forma diferente, então um caminho é inspecionado enquanto outro é processado;
• o WAF e a aplicação analisam JSON de forma diferente, permitindo que dados perigosos contornem a filtragem.
📎 PoC e solicitações de teste:
https://gist.github.com/apostolovd/42a91d54ee27c50b46b15166d610b19a
Produto
Publicado
2026-06-08, 14:47