Trabajar med HTTP/2 en Burp Suite: pruebas, ajustes y ataques de alto nivel

Senaste uppdateringen: 11/11/2025
Författare: C SourceTrail
  • HTTP/2 sv Burp tillåter vistas kännas en el Inspector y edición estilo H1 con normalización para explotar vectores exclusivos.
  • Los nedgraderar H2→H1 återinför H2.CL/H2.TE, begär tunnling och cacheförgiftning med alto impacto.
  • El kontroll fino (protokoll för petición, ALPN åsidosättande, anslutning H2) y justes de proyecto marcan hallazgos.
  • Practicas como CRLF en nombres de cabecera y HEAD för att bekräfta túneles descubren cabeceras internas críticas.

HTTP/2 i Burp Suite

HTTP/2 ha abierto una superficie de pruebas que antes era casi intocable con herramientas centradas en HTTP/1. Burp Suite, desde av inspector y su editor de mensajes, tillåter manipuler y analizar solicitudes H2 con un control que no vas a contrar and otros products. Du har en inträngande webb, dominerar som Burp trabaja med HTTP/2 es clave para descubrir fallos modernos como desincronizaciones, begär smuggling och nedgraderar o inyecciones imposibles en HTTP/1.

Dessutom, Burps justeringar (protocolo por defecto, opciones de Repeater, lyssnare del Proxy y tratamiento de respuestas especiales) marcan la diferencia entre ver un falso negativo y explotar una brecha crítica. Aquí tienes una guía práctica, de nivel profesional, que integra lo esencial del protocolo, las funciones únicas de Burp y las técnicas de ataque más actuales, todo explicado en un español natural y directo.

För qué HTTP/2 cambia las reglas del juego en Burp Suite

Många tjänster har HTTP/2, y con ello aparecen fallos imposibles de detectar site te limitas a HTTP/1. Burp Suite för att deja elegir entre dos modos de trabajo con peticiones H2: una representación estilo HTTP/1 en el editor (Burp normaliza y envía el equivalente en HTTP/2) o la vista fiel de HTTP/2 en el Inspector, que muestra cabeceras y pseudo-cabeceras reales y te permite construir ataques exclusivos de HTTP/2.

Med denna kombination, puedes explorar vectores que apenas han sido auditados por falta de herramientas adecuadas hasta hace poco. La capacidad de Burp för att kunna redigera pseudo-cabeceras, inyectar nuevos caracteres en cabeceras y manipular el formato binario de H2 se traduce en hallazgos muy jugosos, como variantes modernas de request smuggling.

Standard, Burp negocia HTTP/2 cuando el servidor lo anuncia vía ALPN durante el handshake TLS. Aunque no busques fallos de protocolo, te aprovechas del rendimiento de H2; y cuando sí los buscas, puedes forzar la version en cada solicitud desde el Inspector.

Cuando estás cazando vulnerabilidades a nivel de protocolo, es otrolig saber qué version usas en cada golpe. Burp lo deja claro en olika poäng: línea de petición y de estado en el editor, protokolletikett Repeater (zona superior derecha) y Request Attributes en el Inspector. En contextos inga redigerbara, es informativo; sv Proxy/Repetidor, puedes alternar la version y reenviar.

También läser cambiar-protokollet a mano por petición. Burp transforma automáticamente el mensaje para que sea válido en el nuevo formato. Om du är säker på att HTTP/2 inte är tillgängligt för ALPN, aktivera Tillåt HTTP/2 ALPN åsidosättande i repeatermeny y podrás tantear soporte H2 oculto.

HTTP/2-inspektör

Konceptet för HTTP/2 måste vara dominerande

HTTP/2 är binärt. En HTTP/1 todo es texto y los servidores separan campos con operaciones de cadena (dos puntos, saltos de línea, etc.). En H2 los data están a offsets definidos, así que los delimitadores pierden significadoDetta öppnar dörren med en metervara nuevas secuencias en nombres y valores de cabeceras que en H1 te romperían el mensaje, y algunos servidores las toleran pese a lo que dicta la especificación.

I det röda, los mensajes H2 viajan en ramar: uno de cabeceras (motsvarande a línea de petición + cabeceras de H1) y, si toca, varios de datos con el cuerpo. Rapa för enkelt ingen te muestra los frames por separado; te ofrece una vista unificada para trabajar cómodo sin perder la fidelidad del contenido.

La longitud del mensaje en H2 es explícita: cada ram lleva su propio campo de longitud y el servidor suma. Esto evita ambigüedades típicas de Content-Length o Transfer-Encoding en H1. Aun así, ese choque entre mundos se vuelve arma cuando hay front-ends que degradan H2 a H1 para hablar con el back-end.

HTTP/2 introducerar pseudo-cabeceras que sustituyen a la request line y la status line: :method, :path, :authority, :scheme y :status (esta última solo en respuestas). Según la RFC, deben ir antes que las cabeceras normales, y Burp las envía en orden fijo a menos que lo cambies en el Inspector.

Var noga med kompatibilitet: los nombres de cabecera en H2 deberían ir en minúsculas. Es técnicamente posible usar mayúsculas, men algunos servidores begära framställningen por incumplir la especificación. Por eso, la normalización de Burp evita que conviertas sin querer un mensaje válido en H1 en uno inválido en H2.

Pseudo-cabeceras HTTP/2

Dos formas de trabajar con peticiones en Burp: redaktör vs inspektör

En el editor de mensajes puedes usar una representation av HTTP/1-stil para peticiones HTTP/2. Burp normalize tus cambios y envía un equivalente H2 all servidor. Es ideal cuando ditt protokoll y quieres ir rápido probando la app.

En el Inspector, en cambio, tienes una HTTP/2-nativt visning con las pseudo-cabeceras y cada cabecera en campos de Nombre/Valor. Como no depende de la sintaxis H1, puedes construir nyttolaster H2 exklusiva: inyectar dos puntos en nombres de cabecera, espacios o saltos de línea en método y pathen CRLF huvudbonad. Muchas de estas ediciones son tan simples como dubbelklick och teclear, y para insertar CRLF puedes abrir el detalle de la cabecera y usar Skift + Retur att introducera \r\n.

Al hacer ediciones que no se pueden representar en H1 sin perder información, Burp marca la solicitud como kittel. En ese caso, el editor deja de intentar mostrarte un equivalente H1 y verás una notificación explicando för vad som är vattenkokt; el cuerpo sigue synlig, men cualquier cambio en cabeceras lo harás desde el Inspector.

Rastrear y cambiar el protocolo en cada petición

Burp usa HTTP/2 av defekto si el servidor lo anuncia för ALPN. Si necesitas centrarte en fallos que requieren H1 (por ejemplo, CL.TE o TE.CL clásicos), puedes cambiar el protocolo por defecto del proyecto en Inställningar > Nätverk > HTTP, desmarcando la opción de preferir H2. Siempre podrás sobrescribirlo por petición con el conmutador de protocolo del Inspector.

Para identificar la version en uso, Burp lo expone en varios sitios: línea de petición/estado del editor, el indicador sv Repeater junto al host de destino, y en el Inspektör > Begär attribut. Med redigerbara sammanhang kan väljaren tillåtas uppgradera eller nedgradera la solicitud al vuelo.

Si quieres probar soporte H2 no anunciado (HTTP/2 oculto), aktiverad en Repeater Tillåt HTTP/2 ALPN-åsidosättningMed detta kan det forzar HTTP/2 inkluderar cuando el servidor no lo publicque por ALPN y descubrir superficies de ataque escondidas.

En escenarios raros en los que el cliente que navega a través del Proxy tenga problemas con su implementación H2, puedes avaktivera HTTP/2 en lyssnare av proxy: Inställningar > Verktyg > Proxy > Proxylyssnare > Redigera > pestaña HTTP/2 y desmarcar Support HTTP/2. Esto afecta solo la conexión cliente-Burp; ingen cambia la conexión Burp-servidor.

Peticiones kettled: qué son, cómo se producen y cómo revertirlas

En begäran kommer kittel cuando introducerar modificaciones que no se pueden representar con sintaxis HTTP/1 sin perder información. Exempel: añadir una letra mayúscula o dos puntos al nombre av ett huvud, CRLF i namnet eller tapperheten, utrymmen i :path eller :method, ändra :schema, duplicera pseudo-cabeceras o infoga ; y espacio en un valor de cookie.

Si te har pasado de frenada, puedes avaktivera med Ctrl/Cmd + Z, revertir manualmente desde el Inspector los cambios que causaron el estado kettled (la notificación del editor te lo chiva) o forzar el nedgradering av HTTP/1 aceptando que se perderán cambios inkompatibla: Burp normalizará la solicitud y descartará lo iläsible en H1.

Förlängningar kan crear y emitir nuevas peticiones kettled, por lo que ya puedes desarrollar tus propios complementos para pruebas en H2. Sin embargo, de momento kan inte ändras solicitudes kettled que haya creado Burp, porque solo acceden a la representación normalizada estilo H1.

Como mejora en el roadmap de Burp, se trabaja en ampliar el soporte de kettled en mer herramientas, con especial foco en que Intruder pueda manejarlas de forma nativa.

Alternativen anpassar HTTP/2 till Burp

Repeatern innehåller speciella optioner för H2. Puedes mantener el protocolo en redirectiones entre dominios (upprätthålla protokollval) para que los saltos över flera domäner sigan con la version seleccionada, avgörande cuando las vulnerabilidades H2 disparan peticiones a otros värdar. Du kan också habilitar o deshabilitar la reutilización de conexiones H2: algunos servidores tratan diferente la primera petición o dejan conexiones en estado corrupto, provocando intermitencias; si lo desactivas, tu solicitud será siempre la primera del socket.

Otra opción de Repeater: av defekto Burp elimina la cabecera Connection en omsorg H2, porque muchos servidores H2 las rechazan. Si te apetece experimentar, kan ändra den här ledningen y enviar Connection igualmente. Y, como ya hemos visto, Tillåt HTTP/2 ALPN-åsidosättning te permite forzar H2 aun sin anuncio ALPN.

Mer allá de H2, Burp tillåter konfiguration tipos de redirección permitidos (3xx con Location, Refresh header, meta refresh, JavaScript, cualquier status con Location), y tratar streamingsvar para no romper aplicaciones de salida continua (como interfaces con LLMs o SSE). El Proxy puede pasar el stream en tiempo real, Repeater actualiza la respuesta al vuelo y el resto de herramientas lo ignoran. Puedes decidir si almacenar streams kompletta, eliminera chunked-metadata o tratar text/händelseström como streaming automatiskt.

Svar med Status 100, Burp kan entender 100-Fortsätt (saltando la respuesta intermedia y analizando la real) y pensionera 100 stycken antes de pasarlas al resto de herramientas. En HTTP/1, Burp puede usar keep-alive si el servidor lo soporta y cierra conexiones TCP inactivas a los 5 sekunderAlla är son projektjusteringar, aplican solo al proyecto actual.

HTTP/2 oculto: detección y mitigación

Es habitual encontrar servidores que soportan H2 pero no lo anuncian por ALPN. Esto oculta superficie de ataque y puede derivat en begäran om smuggling per nedgraderingReceptet är sentimentalt: ignora ALPN y prueba a mandar H2. Con Burp (ALPN åsidosätta en Repeater) eller använda som curl usando förkunskaper, puedes detectar este patrón rápidamente.

En cuanto a defensa, si quieres usar H2, säkra att meddela det väl... Och om det inte behövs, deaktivering av allting para no exponer superficie innecesaria. En entornos con nedgraderar H2->H1, la recomendación es evitarlos y hablar H2 extremo a extremo.

Ataques y vectores exclusivos de HTTP/2

La gran familia de fallos en H2 llega con el nedgradera H2 till H1 i front-end. El frontentiende la longitud por frames de H2, pero el back-end degradado vuelve a Innehållslängd/överföringskodning. Ese desacuerdo återinför desincronizaciones con nuevas varianter: H2.CL (framsidan är inte giltig CL) y H2.TE (acepta cabeceras de conexión prohibidas como TE).

Ett kändisfall H2.CL påverkar en stor strömning. Al mandar una petición HTTP/2 con Fel i innehållslängd y un payload diseñado, el back-end kort före tid och behandlade restaurangen som ny framställning, tillåter prefijar la solicitud de otro usuario. Con un prefijo que provocaba redirecciones controladas, el impacto escalaba a robo de cuentas y data sensibles.

I sanning H2.TE, algunos balanceadores aceptaron indebidamente Överföringskodning: chunked sv el nedgradera y lo priorizaron frente a un Content-Length inyectado por el front-end. Resultat: colapsas el cuerpo antes y cuelas una segunda petición, con impactos desde fugas de códigos OAuth hasta ejecución de JS vía redirecciones en recursos estáticos.

En annan skyddsmakare är den inyección de cabeceras varaktig el nedgradering med CRLF dentro del valor de una cabecera H2. En ciertos CDN, esto permitía introducir Överföringskodning: chunked al volcarlo i H1 y avkodare H2.TE con cache förgiftning persistente, logrando kontroll de páginas servidas desde la caché.

Varianten H2.X per förfrågningsdelning dyka upp när den försämras, el front-end infoga el \r\n\r\n de cierre de cabeceras och konvertera ditt preferet till ett fullständig ansökan. Se observó un efecto dominó: cada usuario recibía la respuesta destinada al anterior, con exposición de PII y cookies de sesión. Algunos intentos de parcheo incompletos dejaron vías como inyección en pseudo-cabeceras eller blockera CRLF men nej LF suelto, que segue siendo explotable.

Túneles de petición (begäran tunnling): confirmar y explotar

Hö frontändar que inga återanvända anslutningar al back-end o aplican politics 1:1 con el cliente. En estos escenarios, no puedes influir en la suuiente petición y las técnicas clásicas de confirmación fallan. Lo que sí queda es el tunnel för ansökan: colar una segunda solicitud en el mismo viaje y få två svar del backend.

La confirmación con H1 es ambigua porque concatenar respuestas es normal en keep-aliveMed H2, si ves cabeceras HTTP/1 incrustadas en el cuerpo de la respuesta H2, tienes la prueba del algodón. Ett ytterligare problem: algunos front-ends leen solo tantos bytes como indique el Content-Length de la primera respuesta, ocultando la segunda.

La solución práctica que mejor funciona es ändra ett HUVUD en la solicitud synlig, de forma que la primera respuesta traiga solo cabecerasDet här gör att front-end-systemet sobre-lea y te entregue el inicio de la segunda respuestaOm dessutom tuneas una segunda solicitud inválida, su respuesta de error suele llegar antes y facilita la detección. Ten paciencia: por tidsmässig känslighet, puede requerir varios intentos.

Para explotar de verdad, céntrate en inre huvudbonader que el front-end inyecta (identidad del usuario, claves internas, routing). Con begäran tunnling puedes bypassar la reescritura/protección y colarlas sin filtros. Si no conoces sus nombres, usa herramientas como Param Miner, que pueden adivinar cabeceras internas por diferencias en la respuesta cuando viajan por el túnel.

Incluso sin conocerlas, puedes provocar desacuerdo sobre dónde empieza el cuerpo: si el front cree que parte de tu nyttolasten es cabecera, insertará sus internas en medio; el tillbaka puede tratarlas como parte de tu parámetro y reflektera över dessa värden. Esta técnica es útil incluso cuando el túnel es ciego y återhämtar sig bara ett svar.

En condiciones favorables, el túnel permite un cacheförgiftning avanzado: usando HEAD, mezclas cabeceras de una respuesta con Plats reflekterande de otra y consigues que navegadores tolka innehållet como HTML/JS, tomando control persistente de rutas cacheadas.

Primitivas extra: duplicados, :schema y división de nombres

HTTP/2 tillåter escenarios impensables en H1: han visto servidores que accepterar multiplar: sökväg y usan uno u otro de forma inkonsekvent, abriendo vías de eftersvio de ruta. También existe la coexistencia de :auktoritet y Värd; al poder faltar uno u otro, emergen Host-headerattacker cambiando cómo una capa u otra resuelve el destino.

La pseudo-cabecera :schema merece atención. Algunos sistemas la usan para construir URLs de forma ingenua; si puedes escribir bytes arbitrarios, URL-prefix injiceras, cambias stigar y en ocasiones envenenas cachés o provocas SSRF si se utiliza para skicka ansökan vatten under vattnet.

En annan teknik är división del nombre de cabecera permitiendo dos puntos en el nombre. Ingen siempre genera desync porque el downgrade añade otro : slutligen, men jag gynnas Hostattacker cuando los servidores ignoran lo que sigue al puerto. Si el tillbaka tolera rarezas, puedes forzar líneas de petición válidas inyectando utrymmen en :metod (observado en combinaciones con mod_proxy) för saltarte bloqueos de rutas.

Por último, hay back-ends que aún soportan linjevikning en H1. Si el front-end acepta nombres de cabecera que empiezan con espacio y no ordena cabeceras, puedes kontaminär cabeceras posteriores (inklusive internas). Se han visto ejemplos donde el Begäran-ID reflejado terminaba mostrando datos insertados mediante una cabecera con space initial.

Herramientas, flujo de trabajo y trucos de productividad

För att automatisera, finns en stack HTTP/2 simplificado en Turbo Intruder que transforma solicitudes H1 a H2 y aplica mapeos de caracteres útiles para exploits: ^ → \r, ~ → \n, ` → :. Du kan till och med om att skriva in pseudo-huvud declarándolas como cabeceras H1 ficticias y controlar así el downgrade and servidores vulnerables. Para pruebas con callbacks y detección avanzada de interacciones puedes usar Burp Collaborator i automatiserade fluer.

Si el stack H2 minimalista no se lleva bien con algún objetivo, puedes invocar el stack nativo av Burp av Turbo Intruder (Engine.BURP2), que es más tolerante con comportamientos raros. Burp Scanner och tillägg som HTTP-förfrågningssmugglare ya integran detecciones de estas variantes (incluida la de tunnel med HEAD), och Param Miner hjälp med beskriv inre huvuden genom skillnader i svar.

En cuanto a estabilidad, vigila la reutilización de conexiones: algunos mål tratan la primera petición de forma distinta o se quedan con sockets corruptos. En Burp Repeater puedes avaktivera återanvändningen H2, och justera Turbo Intruder förfrågningarPerAnslutning para evitar que efectos residuales distorsionen tus pruebas.

En la interfaz actual de Burp (nuevos Inspectores), el kontroll de la version HTTP está sv Begär attribut arriba a la derecha. Cambiar el método dentro del cuerpo ya har ingen effekt como ocurría en versiones antiguas; ahora se maneja todo desde la vista del Inspector y la lógica de protocolo.

Ejercicio práctico con Burp: CRLF en nombres de cabecera y túnel a /admin

börja med a SKAFFA SIG / sv Repeater, under en H2 sv Begär attribut y añade una cabecera arbitraria. En el Namn, inyecta un CRLF för en färg Host ytterligare, till exempel: foo: bar\r\nHost: abc och hur valor pon algo inocuo. Si la svar reagerade på din inbjudna värd, har bekräftat en inyección de CRLF vía nombres de cabecera.

Localiza un endpoint que refleje parametros (como un Sök). Cambia el método con clic derecho (Ändra begäran metod) y confirma que la búsqueda funciona con POST enviando search en el cuerpo. Ahora, en la cabecera arbitraria, inyecta un Content-Length grande och en sekund parametersökning tras un doble CRLF, by emplo: foo: bar\r\nContent-Length: 500\r\n\r\nsearch=x.

Rellena el cuerpo principal con datos de relleno hasta superar el Content-Length smuggleado. Al enviar, la aplicación reflejará cabeceras añadidas por el front-end (cookies de sesión, flaggor SSL y, lo importante, en unik frontend-nyckel) i svaret.

Ändra den synliga metoden HUVUD och i den maliciosa nässeln smuggla en GET-petition al panel de administración con las cabeceras internas que har aprendido: \r\n\r\nGET /admin HTTP/1.1\r\nX-SSL-VERIFIED: 1\r\nX-SSL-CLIENT-CN: administrator\r\nX-FRONTEND-KEY: TU-CLAVE\r\n\r\nOm du får ett felmeddelande otillräckliga byte, använder en resurs med kortare liv (till exempel, /login) för front-end sobre-lea y te muestre el inicio de la segunda respuesta i kroppen H2.

En esa respuesta anidada podrás localizar la URL administrativa sensible (av ejemplo, /admin/delete?username=carlos) Och actualizar la ruta de la petición smuggleada. Aunque la respuesta visible puede ser de error, handlingen utkastas porque ha viajado por el túnel hasta el back-end con las credenciales internas correctas.

Este ejemplo agrupa varias idéer: CRLF en nombre de cabecera en H2, missbruk av innehållslängd sv nedgradera, bekräfta con HUVUD och användning av inre huvudbonader inyectadas por el front para alcanzar un panel restringido.

La combinación de conocimientos de protocolo, Inspektör de Burp för H2, y técnicas de desync te permite cubrir vectores que van desde el smuggling clásico reimaginado fram till poisoning de caché persistente, Via PII-flyktingar y ejecución de JavaScript en sitios de alto perfil. Con ajustes bien medidos (protocolo por defecto, reutilización de conexiones, overrides de ALPN) och práctica con Repeater e Inspector, tendrás control real sobre cómo viajan tus peticiones och ungefär cómo se rompen las asunciones entre capas cuando se enfrentan HTTP/2 och HTTP/1.

usos típicos de Burp Collaborator
Relaterad artikel:
Usos típicos de Burp Collaborator: guía completa y práctica
Relaterade inlägg: