- HTTP/2 en Burp позволява изгледи на файлове в el Inspector и издание H1 с нормализиране за ексклузивно използване на вектори.
- Los downgrade H2→H1 reintroducen H2.CL/H2.TE, request tunneling y cache poisoning con alto impacto.
- Фин контрол (протокол за петиция, ALPN отмяна, връзка H2) и коригиране на проекта, маркиран халазгос.
- Practicas como CRLF en nombres de cabecera y HEAD за потвърждение на tuneles descubren cabeceras internas ríticas.
HTTP/2 е претърпял суперфиция на pruebas que antes era casi incable con herramientas centradas en HTTP/1. Burp Suite, desde su Inspector y su editor de mensajes, permite manipular y analizar solicitudes H2 con un control que no vas a encontrar en drugi products. Ако нямате пентест в мрежата, dominar cómo Burp работа с HTTP/2 es clave para descubrir fallos modernos como desincronizaciones, request smuggling en downgrades o inyecciones imposibles en HTTP/1.
Освен това, най-добрите корекции на оригване (protocolo por defecto, opciones de Repeater, listeners del Proxy y tratamiento de respuestas especiales) markan 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.
Чрез HTTP/2 cambia las reglas del juego en Burp Suite
Много сървъри поддържат HTTP/2, y con ello aparecen fallos unposibles de detektor site te limitas a HTTP/1. Burp Suite te deja elegir entre dos modos de trabajo con peticiones H2: una reprezentación estilo HTTP/1 en el editor (Burp нормализира и envía el equivalente en HTTP/2) o изглед на HTTP/2 поле в инспектор, que muestra cabeceras y pseudo-cabeceras reales y te permite construir ataques exclusivos de HTTP/2.
С тази комбинация, 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 контрабанда.
По подразбиране, Burp договаря HTTP/2, когато сървърът се обявява чрез ALPN, продължително ръкостискане TLS. Aunque no busques fallos de protocolo, te aprovechas del rendimiento de H2; y cuando sí los buscas, puedes forzar la versión en cada solicitud desde el Inspector.
Cuando estás cazando vulnerabilidades a nivel de protocolo, es imprescindible saber qué versión usas en cada golpe. Burp lo deja claro en varios puntos: línea de petición y de estado en el editor, протоколен етикет Ретранслатор (zona superior derecha) y Атрибути на заявка в инспектор. En contextos no editable, es informativo; en Proxy/Repetidor, puedes alternar la versión y reenviar.
También puedes cambiar protocolo a mano por petición. Burp transforma avtomáticamente el mensaje para que sea válido en el nuevo formato. Искате ли да проверите HTTP/2 за сървъра без съобщение за ALPN, activa Разрешаване на замяна на HTTP/2 ALPN в менюто на повторителя y podrás tantear soporte H2 oculto.

Концепциите на HTTP/2, които се нуждаят от доминиране
HTTP/2 е двоичен. En HTTP/1 todo es texto y los serveridores separan campos con operaciones de cadena (dos puntos, saltos de línea и т.н.). En H2 los datos están a offsets definidos, así que los delimitadores pierden significadoОтваря вратата на метъра. 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.
В червено, los mensajes H2 viajan en frames: uno de cabeceras (equivalente a línea de petición + cabeceras de H1) y, si toca, varios de datos con el cuerpo. Оригване por simplicidad no 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 frame lleva su propio campo de longitud y el сървър сума. Esto evita ambigüedades típicas de Content-Length o Transfer-Encoding en H1. Аун аси, ese choque entre mundos se vuelve arma каква предна част е деградирана от H2 и H1 за разделяне с задния край.
HTTP/2 въведение псевдокабесери 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.
Внимавайте със съвместимостта: los nombres de cabecera en H2 deberían ir en minúsculas. Es técnicamente posible usar mayúsculas, pero algunos servidores подаде петицията 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: редактор срещу инспектор
En el editor de mensajes puedes usar una представяне в стил HTTP/1 за петиции HTTP/2. Burp нормализира tus cambios и envía un equivalente H2 al server. Es ideal cuando протоколът ти е истински y quieres ir rápido probando la app.
En el Inspector, en cambio, tienes una естествен изглед на HTTP/2 con las pseudo-cabeceras y cada cabecera en campos de Nombre/Valor. Como no depende de la sintaxis H1, ексклузивно конструиране на полезни товари H2: inyectar dos puntos en nombres de cabecera, espacios o saltos de línea en método y pathили CRLF в кабесерас. Muchas de estas ediciones son tan simples como двойно кликване и електронно почистване, y para insertar CRLF puedes abrir el detalle de la cabecera y usar Shift + Връщане да въведе \r\n.
Al hacer ediciones que no se pueden representar en H1 sin perder información, Burp marca la solicitud como котел. En ese caso, el editor deja de intentar mostrarte un equivalente H1 y verás una notificación explicando за това, което е китъл; el cuerpo sigue видим, но cualquier cambio en cabeceras lo harás desde el Inspector.
Rastrear y cambiar el protocolo en cada petición
Burp usa HTTP/2 за дефект, ако сървърът е обявен за ALPN. Si necesitas centralarte en fallos que requieren H1 (por ejemplo, CL.TE o TE.CL clásicos), puedes cambiar el protocolo por defecto del proyecto en Настройки > Мрежа > HTTP, desmarkando la opción de preferir H2. Siempre podrás sobrescribirlo por petición con el conmutador de protocolo del Inspector.
Para identificar la versión en uso, Burp lo expone en varios sitios: петиционна линия/редакторски ред, el indicador en Repeater junto al host de destino, y en el Инспектор > Заявка за атрибути. В контекста на възможностите за редактиране, този селектор е разрешен надграждане или понижаване молбата за пътуване.
Искате ли да използвате H2 без съобщение (HTTP/2 окултно), активиране и повторител Разрешаване на HTTP/2 ALPN презаписванеС това може forzar HTTP/2 включва, когато сървърът не е публичен за 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 деактивиране на HTTP/2 в слушател на прокси: Settings > Tools > Proxy > Proxy listeners > Edit > pestaña HTTP/2 y desmarcar Support HTTP/2. Esto afecta solo la conexión cliente-Burp; няма връзка с Burp-servidor.
Peticiones kettled: qué son, cómo se produn y cómo revertirlas
Петиция се подава котел cuando въвежда modificaciones que не може да се представя със синтаксис HTTP/1 sin perder información. Пример: añadir una letra mayúscula o dos puntos al nombre от една кабесера, CRLF с името или храбростта, пространства в :path или :method, модифициращ :схема, дубликат на псевдокабесерас o вмъкване ; y espacio en un valor de cookie.
Si te has pasado de frenada, puedes премахване с Ctrl/Cmd + Z, revertir manualmente desde el Inspector los cambios que causaron el estado kettled (la notificación del editor te lo chiva) o да се понижи версията на HTTP/1 aceptando que se perderán cambios incompatibles: Burp normalizará la solicitud y descartará lo ilegible en H1.
Разширенията могат crear y emitir nuevas peticiones kettled, por lo que ya puedes desarrollar tus propios complementos para pruebas en H2. Sin embargo, de momento не може да се променя 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.
Opciones y Adjustes HTTP/2 en Burp
Ретранслаторът включва специални опции за H2. Пуедес mantener el protocolo en redirecciones entre dominios (налагане на избор на протокол) para que los saltos cross-domain sigan con la versión seleccionada, crucial cuando las vulnerabilidades H2 disparan peticiones a tros hosts. Можете и вие 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.
Друга опция за ретранслатор: дефектен Burp elimina la cabecera Connection en solicitudes H2, porque muchos servidores H2 las rechazan. Si te apetece experimentar, може да промени това проводник y enviar Connection igualmente. Y, como ya hemos visto, Разрешаване на HTTP/2 ALPN презаписване te permite forzar 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 отговори на стрийминг para no romper aplicaciones de salida continua (като интерфейси с LLM или SSE). El Proxy puede pasar el stream en tiempo real, Ретранслатор actualiza la respuesta al vuelo y el resto de herramientas lo ignoran. Puedes decidir si пълни стриймове на Almacenar, премахване на фрагментирани метаданни o преобразуване на текст/поток от събития като стрийминг автоматично.
В отговорите с Състояние 100, Оригване може entender 100-Продължи (saltando la respuesta intermedia y analizando la real) y пенсионер кабесерас 100 antes de pasarlas al resto de herramientas. В HTTP/1, Burp puede използвайте keep-alive, ако сървърът е в помощ y cierra conexiones TCP inactivas a los 5 секундиВсички са сини корекции на проекта, приложен самостоятелно в действителен проект.
HTTP/2 окулт: откриване и смекчаване
Es habitual encontrar servidores que поддържа H2, но няма съобщение за ALPN. Esto oculta superficie de ataque y puede derivar en искане за контрабанда за понижаване на рейтингаРецептата е сенцила: игнорирайте ALPN и задайте мандар H2. Con Burp (ALPN override en Repeater) или con utilidades como curl usando предварителни знания, puedes detector este patrón rápidamente.
En cuanto a defensa, si quieres usar H2, добре гарантирайте обявитеИ ако не е необходимо, деактивирано от всичко para no exponer superficie innecesaria. En entornos con downgrade H2->H1, la recomendación es evitarlos y hablar H2 extremo a extremo.
Атаки и ексклузивни вектори на HTTP/2
La gran familia de fallos en H2 llega con el понижаване на H2 до H1 в предния край. El front entiende la longitud por frames de H2, pero el back-end degradado vuelve a Дължина на съдържанието/Прехвърляне-Кодиране. Ese desacuerdo въвежда отново desincronizaciones con nuevas variantes: H2.CL (предната част не е валидна CL) y H2.TE (acepta cabeceras de conexión prohibidas como TE).
Знаменит случай на H2.CL afectó a un gran sitio de streaming. Al mandar una petición HTTP/2 con Грешка в дължината на съдържанието y un un payload diseñado, el back-end кърти преди времето и търгувайте с почивката като нова петиция, позволявайки prefijar la solicitud de otro usuario. Con un prefijo que provocaba redirecciones controladas, el impacto escalaba a robo de cuentas y datos sensibles.
В съзнанието H2.TE, algunos balanceadores aceptaron indebidamente Трансфер-кодиране: на парчета en el downgrade y lo priorizaron frente a un Content-Length inyectado por el front-end. Резултат: colapsas el cuerpo antes y cuelas una segunda petición, con impactos desde fugas de códigos OAuth hasta ejecución de JS чрез redirecciones en recursos estáticos.
Друг потенциален покровител е ла inyección de cabeceras durante el downgrade използване на CRLF dentro del valor de una cabecera H2. En ciertos CDN, esto permitía introducir Трансфер-кодиране: на парчета ал волкарло на H1 г. десенкаденар H2.TE con cache poisoning persistente, logrando control de páginas servidas desde la caché.
Вариантът H2.X чрез разделяне на заявки появява се, когато се разпада, el front-end inserta el \r\n\r\n de cierre de cabeceras и ще преобразиш преференцията си в една пълна петиция. 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 или блокирай CRLF, но не LF suelto, que sigue siendo exploable.
Túneles de petición (заявка за тунелиране): потвърждение и експлоатиране
Предни части за сено, que няма повторно използване на връзки бек-енд или приложена политика 1:1 за клиента. En estos сценарии, no puedes influir en la siguiente petición y las técnicas clásicas de confirmación fallan. Lo que sí queda es el тунел за петиции: colar una segunda solicitud en el mismo viaje y получете два отговора дел бек-енд.
La confirmación con H1 es ambigua porque concatenar respuestas es normal en keep-aliveС H2, си вес cabeceras HTTP/1 incrustadas en el cuerpo de la respuesta H2, tienes la prueba del algodón. Допълнителен проблем: предни части на algunos leen solo tantos байтове като indique el Content-Length de la primera respuesta, ocultando la segunda.
La solución práctica que mejor funciona es камбиар ГЛАВА en la solicitud visible, de forma que la primera respuesta traiga соло кабесерасТова е предният край. sobre-lea y te entregue el inicio de la segunda respuestaАко освен това tuneas una segunda solicitud inválida, su respuesta de error suele llegar antes y facilita la detección. Десет paciencia: пор темпорална чувствителност, puede requerir varios intentos.
Para explotar de verdad, céntrate en кабесерас интернас que el front-end inyecta (identidad del usuario, claves internas, routing). По заявка за тунелиране 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.
Inclusive 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 parametro y отразяват тези стойности. Esta técnica es útil incluso cuando el tunel es ciego y само се възстановява един отговор.
En condiciones favorables, el tunel permite un отравяне на кеша avanzado: usando HEAD, mezclas cabeceras de una respuesta con Отразяващо местоположение de otra y consigues que navegadores интерпретирай съдържанието като HTML/JS, постоянен контрол на управлението на кеша.
Primitivas extra: duplicados, :scheme y división de nombres
HTTP/2 позволява неизбежни сценарии в H1: той разглежда сървърите, които приема кратни :path y usan uno u otro de forma inconsistente, abriendo vías de пътека. También existe la coexistencia de :authority y Host; al poder faltar uno u otro, emergen атаки на заглавката на Host cambiando cómo una capa u otra resuelve el destino.
Псевдокабесера схема merece atención. Algunos sistemas la usan para construir URLs de forma ingenua; si puedes escribir bytes arbitrarios, инжекции за URL адреси, cambias paths y en ocasiones скрити o provocas SSRF се използва ал подай петицията агуас абахо.
Друга техника е division del nombre de cabecera permitiendo dos puntos en el nombre. No siempre genera desync porque el downgrade añade otro : окончателно, но предпочитам атаки на Host cuando los servidores ignoran lo que sigue al puerto. Si el back tolera rarezas, puedes forzar líneas de petición válidas вкарвам пространства в :метод (наблюдава се в комбинация с mod_proxy) за блокове на маршрути.
Por último, hay back-ends que aún soportan сгъване на линии 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 Идентификатор на заявката reflejado terminaba mostrando datos insertados mediante una cabecera con начално пространство.
Herramientas, flujo de trabajo y trucos de productividad
За автоматизация, съществува стек HTTP/2 опростен в Turbo Intruder que transforma solicitudes H1 a H2 y applica mapeos de caracteres útiles para exploits: ^ → \r, ~ → \n, ` → :. Можете дори събрескрибир псевдокабесерас declarándolas como cabeceras H1 ficticias y controlar así el downgrade en serverores vulnerables. Para pruebas con callbacks y detección avanzada de interacciones puedes Сътрудник на Burp от Usar на автоматизирани флуиди.
Si el stack H2 minimalista no se lleva bien con algún objetivo, puedes извикване на роден стек от Burp от Turbo Intruder (Engine.BURP2), que es más tolerante con portamientos raros. Скенер за оригване и разширения като Контрабандист на HTTP заявки ya integran detecciones de estas variantes (incluida la de тунел с HEAD), и Param Miner помага на откривам вътрешни кабесерас поради разлики в отговорите.
En cuanto a estabilidad, vigila la reutilización de conexiones: algunos цели tratan la primera petición de forma distinta o se quedan con sockets corruptos. En Burp Repeater работи дезактивиране на повторно използване H2, и настройте Turbo Intruder заявки за връзка за evitar que efectos residuals distorsionen tus pruebas.
En la interfaz actual de Burp (nuevos Inspectores), el контрол на версията HTTP está en Request attributes arriba a la derecha. Cambiar el método dentro del cuerpo ya няма ефект 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 tunel a /admin
започнете с a ВЗЕМИ / Ретранслатор, подчинен на H2 Атрибути на заявката y añade una cabecera arbitraria. Ен ел име, инжекция un CRLF пара яка ООН Домакин допълнително, например: foo: bar\r\nHost: abc и как доблест pon algo inocuo. Si la respuesta реакция на вашия инжектиран хост, потвърди едно inyección de CRLF vía nombres de cabecera.
Локализирайте крайната точка, която отразява параметрите (като un Търсене). Cambia el método con clic derecho (Промяна на метода на заявка) и потвърждаване на грешката funciona con POST enviando search en el cuerpo. Ahora, en la cabecera arbitraria, въвеждане на голяма дължина на съдържанието и търсене на втори параметър tras un doble CRLF, например: 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 (бисквитки на сесията, флагове SSL y, lo importante, уникална ключова дума за предния край) в отговора.
Видимият метод се променя HEAD и в злонамерената кабесера контрабанда на петиция 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\nАко получите грешка недостатъчни байтове, достигайки до ресурс с по-кратко тяло (например /login) за предния край sobre-lea y te muestre el inicio de la segunda respuesta в тялото H2.
En esa respuesta anidada podrás localizar la URL administratora sensible (por ejemplo, /admin/delete?username=carlos) Y actualizar la ruta de la petición smuggleada. Aunque la respuesta visible puede ser de error, действието се изхвърля porque ha viajado por el tunel hasta el back-end con las credenciales internas correctas.
Este ejemplo agrupa varias идеи: CRLF en nombre de cabecera en H2, злоупотреба с дължина на съдържанието en downgrade, confirmación con HEAD и използване на кабесерас интернас inyectadas por el front para alcanzar un panel restringido.
La combinación de conocimientos de protocolo, Инспектор де Бърп за H2, y técnicas de desync te permite cubrir vectores que van desde el контрабанда clásico reimaginado до момента на отравяне de caché persistente, преминавайки през избягвания на PII y ejecución de JavaScript en sitios de alto profil. Con ajustes bien medidos (protocolo por defecto, reutilización de conexiones, overrides de ALPN) y práctica con Repeater e Inspector, tendrás control real sobre cómo viajan tus peticiones и за cómo se rompen las asunciones entre capas как да използвате HTTP/2 и HTTP/1.
