- HTTP/2 hr Podrigivanje dozvoljava pregled datoteka u Inspektoru i izdanju H1 sa normalizacijom za ekskluzivne eksploatacijske vektore.
- Loss downgrades H2→H1 ponovo uvodi H2.CL/H2.TE, zahteva tuneliranje i trovanje keš memorije sa drugim uticajem.
- Fino kontrolno (protocolo por petición, ALPN override, conexión H2) i prilagođavanje projekta marcan hallazgos.
- Practicas como CRLF en nombres de cabecera y HEAD para confirmar tuneles descubren cabeceras internas críticas.

HTTP/2 je abierto una superficie de pruebas que antes era casi intocable con herramientas centralas en HTTP/1. Burp Suite, Inspector i urednik Mensajes, dozvoljavaju manipularne i analizirajuće zahtjeve H2 sa kontrolom za koje nemate encontrar en drugi proizvodi. Si ya haces pentesting web, Dominar Cómo Burp trabaja sa HTTP/2 es clave para descubrir fallos modernos como desincronizaciones, zahtjev za krijumčarenje i downgrades ili inyecciones imposibles en HTTP/1.
Takođe, podešavanju podrigivanja (protocolo por defecto, opciones de Repeater, listeners del Proxy i 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 factes, todo explicado en un español natural y directo.
Por qué HTTP/2 cambia las reglas del juego en Burp Suite
Mnogo servisa ima HTTP/2, y con ello aparecen fallos nemoguće de detektorske stranice ograničavaju kao HTTP/1. Burp Suite te deja elegir entre dos modos de trabajo con peticiones H2: unreprezentation estilo HTTP/1 en el editor (Burp normaliza y envía el equivalente en HTTP/2) o la vista file de HTTP/2 en el el Inspector, que muestra cabeceras y pseudo-cabeceras reales y te dozvolite konstruiranje ekskluzivnih HTTP/2.
Sa ovom kombinacijom, puedes explorar vectores que apenas han sido auditados por falta de herramientas adecuadas hasta hace poco. La capacidad de Burp para ver y editar 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 krijumčarenja.
Default, Burp negocia HTTP/2 cuando el servidor lo annuncia via 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 impresivne saber qué version usa en cada golpe. Podrigni lo deja claro en varios puntos: línea de petición y de estado en el editor, protokolarna etiketa Repetitor (zona superior derecha) y Zahtjev za atribute kod inspektora. En contextos no editables, es informativo; en Proxy/Repetidor, puedes alternar la version y reenviar.
También puedes cambiar protocolo a mano por petición. Burp transforma automáticamente el mensaje para que sea válido en el nuevo formato. Si quieres probar HTTP/2 aunque el servidor no lo annuncie por ALPN, activa Dozvoli HTTP/2 ALPN nadjačavanje u izborniku Repeater y podrás tantear soporte H2 oculto.

Conceptos clave de HTTP/2 que necesitas Dominar
HTTP/2 je binarni. En HTTP/1 todo es texto y los servidores separan campos con operaciones de cadena (dos puntos, saltos de línea, itd.). En H2 los datos están a offsets definidos, así que los delimitadores pierden significadoOtvorena su vrata metra. 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.
U crvenom, los mensajes H2 viajan en frames: uno de cabeceras (equivalent a línea de petición + cabeceras de H1) y, si toca, varios de datos con el cuerpo. Podrigivanje por simplicidad no te muestra los frames por separado; te ofrece una vista unificada para trabajar cómodo sin perder la fidelidad del contenido.
Longitud del mensaje en H2 es explícita: cada frame lleva su propio campo de longitud y el servidor suma. Ovo je ambigüedades tipova dužine sadržaja ili kodiranja prijenosa u 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.
Uvod u HTTP/2 pseudo-kabeceras 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.
Budite oprezni s kompatibilnošću: los nombres de cabecera en H2 deberían ir en minúsculas. Es técnicamente posible usar mayúsculas, pero algunos servidores tražiti peticiju 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.

Dos formas de trabajar con peticiones en Burp: urednik protiv inspektora
En el editor de mensajes puedes usar una stilski prikaz HTTP/1 para peticiones HTTP/2. Burp normaliza tus cambios y envía un equivalente H2 al servidor. Es ideal cuando protokol koji se primjenjuje y quieres ir rápido probando la app.
En el Inspector, en cambio, tienes una izvorni HTTP/2 pregled con las pseudo-cabeceras y cada cabecera en campos de Nombre/Valor. Como no depende de la sintaxis H1, puedes construir payloads H2 exclusivos: inyectar dos puntos en nombres de cabecera, espacios o saltos de línea en método y pathili CRLF u kabeserima. Muchas de estas ediciones son tan simples como dvostruki klik i teclear, y para insertar CRLF puedes abrir el detalle de la cabecera y usar Shift+Return uvesti \r\n.
Al hacer ediciones que no se pueden representar en H1 sin perder información, Burp marca la solicitud como kotlića. En ese caso, el editor deja de intentar mostrarte un equivalent H1 y verás una notificación explicando po onome što je zagrijano; el cuerpo sigue vidljivo, pero cualquier cambio en cabeceras lo harás desde el Inspector.
Rastrear y cambiar el protocolo en cada petición
Burp usa HTTP/2 po defektu na serveru za najavu na ALPN-u. Si necesitas centralarte en fallos que requieren H1 (por ejemplo, CL.TE ili TE.CL clásicos), puedes cambiar el protocolo por defecto del proyecto en Postavke > Mreža > 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 en Repeater junto al host destino, y en el Inspektor > Zahtjev za atribute. U kontekstu koji se može uređivati, ovaj selektor te dozvoljava nadogradnja ili snižavanje verzije zahtjev za putovanje.
Si quieres probar soporte H2 no annunciado (HTTP/2 oculto), activa en Repeater Dozvoli HTTP/2 ALPN prepisivanjeS ovim, možete forzar HTTP/2 incluso 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 problems con su implementación H2, puedes deaktiviraj HTTP/2 i slušalac proxyja: Postavke > Alati > Proxy > Slušatelji proxyja > Uredi > Pestaña HTTP/2 y desmarcar Support HTTP/2. Esto afecta solo la conexión cliente-Burp; no cambia la conexión Burp-servidor.
Peticiones kettled: qué son, cómo se producen y cómo revertirlas
Podnošenje zahtjeva kotlića cuando uvodi modificaciones que ne postoji predstavnik sintakse HTTP/1 sin perder información. Primjeri: añadir una letra mayúscula o dos puntos al nombre od jedne kabecere, CRLF pod imenom ili hrabrošću, prostori u :putu ili :metodi, modifikator :shema, duplikat pseudo-kabeceras o insertar ; y espacio en un valor de cookie.
Si te has pasado de frenada, puedes uklonite s Ctrl/Cmd + Z, revertir manualmente desde el Inspector los cambios que causaron el estado kettled (la notificación del editor te lo chiva) o pokušati smanjiti verziju na HTTP/1 aceptando que se perderán cambios incompatibles: Burp normalizará la solicitud y descartará lo iletable en H1.
Ekstenzije mogu crear y emitir nuevas peticiones kettled, por lo que ya puedes desarrollar tus propios complementos para pruebas en H2. Sin embargo, de momento ne može se mijenjati 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 más herramientas, con especial foco en que Intruder pueda manejarlas de forma nativa.
Opcije i podešavanje HTTP/2 i Burp
Ponavljač uključuje opcione specifikacije paragrafa H2. Puedes mantener el protocolo en redirecciones entre dominios (provedi izbor protokola) para que los saltos cross-domain sigan con la version seleccionada, presudno cuando las vulnerabilidades H2 disparan peticiones a otros hosts. Možete i vi 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.
Druga opcija repetitora: por defecto Burp elimina la cabecera Connection en solicitudes H2, porque muchos servidores H2 las rechazan. Si te apetece experimentar, može promijeniti ovu provodljivost y enviar Connection igualmente. Y, como ya hemos visto, Dozvoli HTTP/2 ALPN prepisivanje te dozvolite da zabilježite H2 aun sin anuncio ALPN.
Más allá de H2, Burp permite configurar tipos de redirección permitidos (3xx con Location, Refresh header, meta refresh, JavaScript, cualquier status con Location), y tratar odgovori na streaming para no romper aplicaciones de salida continua (kao interfejsi sa LLM ili SSE). El Proxy puede pasar el stream en tiempo real, Repetitor aktualiza la respuesta al vuelo y el resto de herramientas lo ignoran. Puedes decidir si kompletni streamovi Almacenara, eliminirati chunked metapodatke o pretraga teksta/toka događaja kao streaming automatski.
U odgovorima sa Status 100Podrigivanje može entender 100-Nastavi (saltando la respuesta intermedia y analizando la real) y penzioner kabeceras 100 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 sekundiSvi ste sinovi prilagođavanja projekta, aplikan solo al proyecto stvarni.
HTTP/2 okulto: otkrivanje i ublažavanje
Es habitual encontrar servidores que suportan H2 pero no lo annuncian por ALPN. Esto oculta superficie de ataque y puede derivar en zahtjev za krijumčarenje ili snižavanje nivoaRecept je napisan: ignora ALPN y prueba a mandar H2. Con Burp (ALPN override en Repeater) ili con utilidades como curl usando prethodno znanje, puedes detectar este patrón rápidamente.
En cuanto a defensa, si quieres usar H2, dobro osigurajte oglasAko ti to nije potrebno, deaktivirao sve para no exponer superficie innecesaria. Entornos con downgrades H2->H1, la recomendación es evitarlos y hablar H2 extremo a extremo.
Ekskluzivni vektori za HTTP/2
La gran familia de fallos en H2 llega con el sniziti H2 na H1 na prednjem dijelu. Prednja dužina okvira H2, ali i pozadinska degradado vuelve a Dužina sadržaja/Kodiranje prijenosa. Ese desacuerdo ponovo uvesti desincronizaciones con nuevas varijanti: H2.CL (prednji dio nije validan CL) y H2.TE (acepta cabeceras de conexión prohibidas como TE).
Slavni slučaj H2.CL afectó a un gran sitio de streaming. Al mandar una petición HTTP/2 con Greška u dužini sadržaja y un payload diseñado, el back-end tortaba prije vremena i liječite ostatak kao nova peticija, dozvoljavajući prefijar la solicitud de otro usuario. Con un prefijo que provocaba redirecciones controladas, el impacto escalaba a robo de cuentas y datos sensibles.
U svetlu H2.TE, algunos balanceadores aceptaron indebidamente Transfer-Encoding: u komadima en el downgrade y lo priorizaron frente a un Content-Length inyectado por el front-end. rezultat: colapsas el cuerpo antes y cuelas una segunda petición, s utjecajem na fugas koda OAuth-a ima ejecución de JS preko redirecciones en recursos estáticos.
Drugi potencijalni pokrovitelj je la inyección de cabeceras durante el downgrade koristeći CRLF dentro del valor de una cabecera H2. En ciertos CDN, esto permitía introducir Transfer-Encoding: u komadima al volcarlo u prvoj polovini godine desencadenar H2.TE con cache poisoning persistente, logrando control de páginas servidas desde la caché.
Varijanta H2.X po zahtjevu za podjelu pojavljuje se kada se raspada, el front-end inserta el \r\n\r\n de cierre de cabeceras i pretvorite svoj predlog u jedan potpuna peticija. 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 ili blokirati CRLF ali ne LF suelto, que sigue siendo explotable.
Túneles de peticion (zahtjev za tuneliranjem): potvrdite i istražite
Prednji dijelovi sijena nema ponovnog korištenja konekcija al back-end ili aplican políticas 1:1 con el cliente. En estos escenarios, no puedes influir en la siguiente petición y las técnicas clásicas de confirmación fallan. Lo que sí queda es el tunel za peticiju: colar una segunda solicitud en el mismo viaje y primite odgovore pozadinskog dijela.
La confirmación con H1 es ambigua porque concatenar respuestas es normal en keep-alive. Sa H2, si ves cabeceras HTTP/1 incrustadas en el cuerpo de la respuesta H2, tienes la prueba del algodón. Dodatni problem: algunos front-ends leen solo tantos bytes kao indique el Content-Length de la primera respuesta, ocultando la segunda.
La solución práctica que mejor funciona es kambiar GLAVU en la solicitud visible, de forma que la primera respuesta traiga solo cabeceraTo je ono što je prednji dio sobre-lea y te entregue el inicio de la segunda respuestaAko pored toga tuneas una segunda solicitud inválida, su respuesta de error suele llegar antes y facilita la detección. Ten paciencia: por temporalna osjetljivost, puede requerir varios intentos.
Para explotar de verdad, céntrate en cabeceras internas que el front-end inyecta (identidad del usuario, claves internas, ruting). Con request tuneliranje 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 tunel.
Incluso sin conocerlas, puedes provocar desacuerdo sobre dónde empieza el cuerpo: si el front cree que parte de tu payload es cabecera, insertará sus internas en medio; el back puede tratarlas como parte de tu parámetro y odražavaju te vrijednosti. Esta técnica es útil incluso cuando el tunel es ciego y samo se oporavlja odgovor.
En condiciones favorables, el tunel permite un avanzado trovanja keš memorijeMotor: usando HEAD, mezclas cabeceras de una respuesta con Reflektirajuća lokacija de otra y consigues que navegadores prevesti sadržaj kao HTML/JS, tomando kontrola persistentne de rutas cacheadas.
Primitivas extra: duplicados, :scheme y división de nombres
HTTP/2 dozvoljava escenarios impensables en H1: on visto servidores que prihvati množitelje :path y usan uno u otro de forma inconsistente, abriendo vías de desvío de ruta. También existe la coexistencia de :authority y Host; al poder faltar uno u otro, emergen napadi zaglavlja Hosta cambiando cómo una capa u otra resuelve el destino.
La pseudo-cabecera :shema merece atención. Algunos sistemas la usan para construir URLs de forma ingenua; si puedes escribir bytes arbitrarios, URL prefiksi za umetanje, cambias paths y en ocasiones skrivenih o provokacija SSRF-a ako se koristi para podnijeti zahtjev aguas abajo.
Druga tehnika je división del nombre de cabecera permitiendo dos puntos en el nombre. Nema siempre genera desync porque el downgrade añade otro : konačno, ali da, favorece napadi Hosta cuando los servidores ignoran lo que sigue al puerto. Si el back tolera rarezas, puedes forzar líneas de petición válidas ubrizgava prostore u :metoda (observado en combinaciones con mod_proxy) para saltarte bloqueos de rutas.
Por último, hay back-ends que aún soportan savijanje linija en H1. Si el front-end acepta nombres de cabecera que empiezan con espacio y no ordena cabeceras, puedes contaminar cabeceras posteriores (incluidas internas). Se han visto ejemplos donde el ID zahtjeva reflejado terminaba mostrando datos insertados mediante una cabecera con početni prostor.
Herramientas, flujo de trabajo y trucos de productividad
Za automatizaciju, postoji stack HTTP/2 pojednostavljeno i Turbo Intruder que transforma solicitudes H1 a H2 y aplica mapeos de caracteres útiles para exploits: ^ → \r, ~ → \n, ` → :. Možeš čak sobrescribir pseudo-cabeceras declarándolas como cabeceras H1 ficticias y controlar así el downgrade en servidores vulnerables. Para pruebas con callbacks y detección avanzada de interacciones puedes usar Burp saradnik na automatiziranim fluidima.
Si el stack H2 minimalista no se lleva bien con algún objetivo, puedes invocar el stack nativo de Burp desde Turbo Intruder (Engine.BURP2), que es más tolerante con comportamientos raros. Burp Scanner y extensiones como Krijumčar HTTP zahtjeva ya integran detecciones de estas variantes (incluida la de tunel sa HEAD-om), i Param Miner pomaže otkriti unutrašnje kabece zbog razlika u odgovorima.
En cuanto a estabilidad, vigila la reutilización de conexiones: algunos targets tratan la primera petición de forma distinta o se quedan con sockets corruptos. En Burp Repeater puedes desactivar la reutilización H2, i podešavanje Turbo Intrudera zahtjeviPoKonekciji para evitar que efectos residules distorsionen tus pruebas.
En la interfaz current de Burp (nuevos Inspectores), el kontrola verzije HTTP je postavljena na atribute zahtjeva arriba a la derecha. Cambiar el método dentro del cuerpo ya nema efekta como ocurría en versiones antiguas; ahora se maneja todo desde la vista del Inspector y la lógica de protocolo.
Ejercicio Practico con Burp: CRLF en nombres de cabecera y tunel a /admin
počni sa a GET / en Repetitor, podređen H2 en Zahtjev za atribute y añade una cabecera arbitraria. En el ime, ubrizgava CRLF para ogrlica un domaćin dodatno, na primjer: foo: bar\r\nHost: abc i kako hrabrost pon algo inocuo. Si la respuesta reakcija na vašeg ubrizganog Hosta, je potvrdio/la una inyección de CRLF preko nombres de cabecera.
Localiza un endpoint que refleje parametros (como un pretraživanje). Cambia el método con clic derecho (Promjena metode zahtjeva) y potvrdi que la búsqueda funciona con POST enviando search en el cuerpo. Ahora, en la cabecera arbitraria, inyecta un Content-Length grande i a pretraga parametara za drugi tras un doble CRLF, na primjer: 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, flags SSL y, lo importante, jedinstvena ključna riječ front-enda) u odgovoru.
Promjena vidljive metode HEAD i u zlonamjernoj kaveznoj kućici prokrijumčariti peticiju GET al panel de administración con las cabeceras internas que has 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\nAko primite grešku nedovoljno bajtova, dolazi do resursa sa kraće tijelo (npr. /login) za prednji dio sobre-lea y te muestre el inicio de la segunda respuesta u tijelu H2.
En esa respuesta anidada podrás localizar la URL administrativni senssible (por ejemplo, /admin/delete?username=carlos) y actualizar la ruta de la peticion smuggleada. Aunque la respuesta visible puede ser de error, akcija se izvodi porque ha viajado por el túnel hasta el back-end con las credenciales internas correctas.
Este ejemplo agrupa varias ideas: CRLF i nombre de cabecera u H2, zloupotreba dužine sadržaja en downgrade, confirmación con HEAD i korišćenje cabeceras internas inyectadas por el front para alcanzar un panel restringido.
La combinación de conocimientos de protocolo, Inspektor de Burp za H2, y técnicas de desync te permite cubrir vectores que van desde el krijumčarenje clásico reimaginado do trovanje de caché persistente, prolazeći bježanja PII osoba y ejecución de JavaScript en sitios de alto profil. Con ajustes bien medidos (protocolo por defecto, reutilización de conexiones, overrides de ALPN) i praksa sa Repeater e Inspector, tendrás control real sobre cómo viajan tus peticiones i otprilike cómo se rompen las asunciones entre capas cuando se enfrentan HTTP/2 y HTTP/1.