- HTTP/2 en Burp permite vistas fieles en el Inspektor y edición style H1 con normalización para explotar vectores exclusivos.
- Mereka menurunkan taraf H2→H1 memperkenalkan semula H2.CL/H2.TE, meminta terowong dan keracunan cache dengan kesannya.
- El control fino (protocolo por petición, ALPN override, conexión H2) y ajustes de proyecto marcan hallazgos.
- Praktik seperti CRLF dalam nombres de cabecera y HEAD untuk mengesahkan túneles descubren cabeceras internas criticas.

HTTP/2 ha abierto una superficie de pruebas que antes era casi intocable con herramientas centradas en HTTP/1. Burp Suite, keluar dari Inspektor dan editor yang bertugas, membenarkan manipulasi dan analisis solicitudes H2 con un control que no vas a encontrar en otros productos. Si ya mempunyai web pentesting, dominar cómo Burp trabaja con HTTP/2 Ini adalah untuk mengetepikan falos moden seperti desincronizaciones, meminta penyeludupan dan penurunan taraf atau tidak mungkin berlaku dalam HTTP/1.
Selain itu, los ajustes finos de Burp (protocolo por defecto, opciones de Repeater, pendengar del Proxy y tratamiento de respuestas especiales) marcan la diferencia entre ver un falso negativo y explotar una brecha critica. 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.
Dengan HTTP/2 cambia las reglas del juego en Burp Suite
Banyak perkhidmatan yang disediakan oleh HTTP/2, y con ello aparecen fallos impossibles de detector si te limitas a HTTP/1. Burp Suite te deja elegir entre dos modos de trabajo con peticiones H2: satu representación gaya HTTP/1 en el editor (Burp normaliza y envía el equivalente en HTTP/2) o la vista fiel de HTTP/2 en el Inspektor, que muestra cabeceras y pseudo-cabeceras reales y te permite construir ataques exclusivos de HTTP/2.
Dengan gabungan ini, puedes explorar vectores que apenas han sido auditados por falta de herramientas adecuadas hasta hace poco. La capacidad de Burp for 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 penyeludupan.
Lalai, Burp negocia HTTP/2 cuando el servidor lo anuncia 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 Inspektor.
Ini adalah kerentanan dan kerentanan protokol, ia adalah saber yang tidak dapat disangkal dalam versi usas dan cada golpe. Burp lo deja claro en varios points: línea de petición y de estado en el editor, etiqueta de protocolo en Pengulang (zona superior derecha) y Minta Atribut en el Inspektor. En contextos no editables, es informativo; my Proxy/Repetidor, boleh ganti versi dan reenviar.
También puedes cambiar protocolo a mano por petición. Burp transforma automáticamente el mensaje for que sea válido en el nuevo formato. Jika anda ingin meminta HTTP/2 aunque el servidor no lo anouncee por ALPN, aktifkan Benarkan HTTP/2 ALPN mengatasi dalam el menu de Repeater y podrás tantear soporte H2 oculto.

Conceptos clave de HTTP/2 que necesitas dominar
HTTP/2 es binario. En HTTP/1 todo es texto y los servidores separan campos con operaciones de cadena (dos puntos, saltos de línea, dll.). En H2 kehilangan data adalah definidos ofsets, así que los delimitadores pierden significado. Esto abre la puerta a meter nuevas secuencias en nombres y valores de cabeceras que en H1 te romperían el mensaje, y algunos servidores las tolerant pese a lo que dicta la especificación.
En la merah, los mensajes H2 melalui bingkai: uno de cabeceras (equivalente a línea de petición + cabeceras de H1) y, si toca, varios de datos con el cuerpo. Sendawa dengan kesederhanaan tiada bingkai yang boleh dipisahkan; te ofrece una vista unificada para trabajar cómodo sin perder la fidelidad del contenido.
La longitud del mensaje en H2 adalah eksplisit: rangka cada 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 depan-hujung que degradan H2 a H1 untuk hablar con el back-end.
HTTP/2 memperkenalkan pseudo-cabeceras que sustituyen ala permintaan baris dan baris status: :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 Inspektor.
Berhati-hati dengan keserasian: los nombres de cabecera en H2 deberían ir en minúsculas. Es técnicamente possible use mayúsculas, but algunos servidores rechazan la petición por incumplir la especificación. Oleh itu, la normalisasi de Burp evita que conviertas sin querer un mensaje válido en H1 and uno invalido en H2.

Dos formas de trabajar con peticiones en Burp: editor vs Inspektor
En el editor de mensajes puedes usar una representación estilo HTTP/1 untuk petisyen HTTP/2. Burp normaliza tus cambios y envía un equivalente H2 al servidor. Ia adalah cuando yang ideal el protocolo te da igual y quieres ir rápido probando la app.
En el Inspektor, en cambio, tienes una vista nativa de HTTP/2 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 points en nombres de cabecera, espacios o saltos de línea en método y path, atau CRLF dentro de cabeceras. Muchas de estas ediciones son tan simples como klik ganda y teclear, y untuk sisipkan CRLF puedes abrir el detalle de la cabecera y usar Shift + Kembali memperkenalkan \r\n.
Al hacer ediciones que no se pueden representar en H1 sin perder information, Burp marca la solicitud como cerek. En ese caso, el editor deja de intentar mostrarte un equivalente H1 y verás una notificación explicando por qué está cerek; el cuerpo sigue boleh dilihat, tetapi cualquier cambio en cabeceras lo harás desde el Inspektor.
Rastrear y cambiar el protocolo en cada petición
Burp usa HTTP/2 por defecto si el servidor lo anuncia por ALPN. Anda perlu memusatkan perhatian pada H1 (contohnya, CL.TE atau TE.CL clásicos), boleh menggunakan protokol untuk defecto del proyecto en Tetapan > Rangkaian > HTTP, desmarcando la opción de preferir H2. Siempre podrás sobrescribirlo por petición con el conmutador de protocolo del Inspektor.
Untuk mengenal pasti versi dan penggunaan, Burp lo expone en pelbagai lokasi: línea de petición/estado del editor, el indicador en Repeater junto al host de destino, y en el Inspektor > Minta Atribut. Dalam konteks boleh diedit, pemilih ini dibenarkan menaik taraf atau menurunkan taraf la solicitud al vuelo.
Jika anda ingin meminta H2 tidak diumumkan (HTTP/2 oculto), aktifkan dalam Repeater Benarkan HTTP/2 ALPN override. Con esto, podrás forzar HTTP/2 incluso cuando el servidor no lo public por ALPN y descubrir superficies de ataque escondidas.
En escenarios bawah en los que el cliente que navega a través del Proxy tenga problems con su implementación H2, puedes nyahaktifkan HTTP/2 dan pendengar dari Proksi: Tetapan > Alat > Proksi > Pendengar proksi > Edit > pestana HTTP/2 dan desmarcar Sokongan HTTP/2. Esto afecta solo la conexión cliente-Burp; tiada cambia la conexión Burp-servidor.
Petisyen cerek: qué son, cómo se producen y cómo revertirlas
Satu petición se vuelve cerek cuando memperkenalkan modificaciones que no se pueden represent con sintaxis HTTP/1 sin perder information. Contoh: añadir una letra mayúscula o dos puntos al nombre de una cabecera, CRLF en el nombre o valor, espacios en :path o :method, modificar :skema, pendua pseudo-cabeceras o sisipan ; y espacio en un valor de cookie.
Si te mempunyai pasado de frenada, puedes deshacer dengan Ctrl/Cmd + Z, revertir manualmente desde el Inspektor los cambios que causaron el estado cerek (la notificación del editor te lo chiva) o untuk menurunkan taraf HTTP/1 aceptando que se perderán cambios incompatibles: Burp normalizará la solicitud y descartará lo terbaca en H1.
Sambungan boleh crear y emitir nuevas peticiones cerek, por lo que ya puedes desarrollar tus propios complementos para pruebas en H2. Embargo dosa, de momento tiada boleh diubah suai solicitudes kettled que haya creado Burp, porque solo acceden a la representación normalizada estilo H1.
Sebagai contoh besar dalam peta jalan de Burp, dan trabaja en ampliar el soporte de kettled en más herramientas, con especial foco en que Intruder pueda manejarlas de forma nativa.
Opciones y ajustes HTTP/2 en Burp
Repeater incorpora opciones específicas para H2. Puedes mantener el protocolo en redirectiones entre dominio (menguatkuasakan pilihan protokol) untuk que los saltos rentas domain seperti pilihan versi, cuando penting las vulnerabilidades H2 disparan peticiones a otros hos. Anda juga boleh habilitar atau deshabilitar la reutilización de conexiones H2: algunos servidores tratan diferente la primera petición or dejan conexiones en state corrupto, provocando intermitencias; saya tidak aktif, tu solicitud será siempre la primera del socket.
Pilihan lain dari Repeater: por defecto Burp elimina la cabecera Sambungan dan solicitudes H2, porque muchos servidores H2 las rechazan. Si te apetece eksperimen, puedes cambiar esta conducta y enviar Sambungan igualmente. Y, seperti yang anda lihat, Benarkan HTTP/2 ALPN override anda telah membenarkan H2 dan anda tidak tahu ALPN.
Más allá de H2, Burp permit configurar tipos de redirection permitidos (3xx con Location, Refresh header, meta refresh, JavaScript, cualquier status con Location), y tratar jawapan dalam penstriman untuk tiada romper aplicaciones de salida continua (antara muka seperti LLM atau SSE). El Proxy puede pasar el stream en tiempo real, Pengulang actualiza la respuesta al vuelo y el resto de herramientas lo ignoran. Puedes decidir si almacenar streams completos, eliminar metadatos de chunked o teks tratar/strim-acara como streaming secara automatik.
En respondas con Status 100, Burp puede entender 100-Teruskan (saltando la respuesta intermedia y analizando la real) y retirar cabeceras 100 antes de pasarlas al resto de herramientas. Dalam HTTP/1, Burp puede usar keep-alive si el servidor lo soporta y cierra conexiones TCP inactivas a los 5 saat. Todos estos nak ajustes de projecto, aplican solo al proyecto actual.
HTTP/2 oculto: detección y mitigación
Es habitual encontrar servidores que soportan H2 tapi no lo anuncian por ALPN. Esto oculta superficie de ataque y puede derivar en minta penyeludupan untuk menurunkan taraf. La receta es sencilla: ignora ALPN y prueba a mandar H2. Con Burp (ALPN override en Repeater) atau con utilidades como curl usando pengetahuan terdahulu, puedes detectar este patrón rápidamente.
En cuanto a defensa, si quieres usar H2, asegúrate de anunciarlo bien. Y si no lo necesitas, desactívalo del todo untuk tiada exponer superficie innecesaria. Entornos con menurunkan taraf 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 turunkan taraf H2 ke H1 en el front-end. Bahagian hadapan membujur pada bingkai H2, tetapi bahagian belakang bahagian belakang merosot vuelve a Panjang Kandungan/Pengekodan Pemindahan. Ese desacuerdo memperkenalkan semula varian desincronizaciones con nuevas: H2.CL (el depan tiada valida CL) y H2.TE (acepta cabeceras de conexión prohibidas como TE).
Un caso celebre de H2.CL mempengaruhi penstriman yang besar. Al mandar una petición HTTP/2 con Erróneo Panjang Kandungan y un payload diseñado, el back-end cortaba antes de tiempo y trataba el resto como petisyen baru, membenarkan prefijar la solicitud de otro usuario. Con un prefijo que provocaba redirectiones controladas, el impacto escalaba a robo de cuentas y data sensibles.
En la vertiente H2.TE, algunos balanceadores aceptaron indebidamente Transfer-Encoding: dipotong dan turunkan taraf y lo priizaron frente un Content-Length innyectado por el front-end. Keputusan: colapsas el cuerpo antes y cuelas una segunda petición, con impactos desde fugas de códigos OAuth hasta ejecución de JS via redirectiones en recursos estáticos.
Otro patrón potente es la inyección de cabeceras durante el downgrade menggunakan CRLF dentro del valor de una cabecera H2. En ciertos CDN, esto permitía introducir Transfer-Encoding: dipotong al volcarlo a H1 y desencadenar H2.TE con cache keracunan berterusan, logrando control de páginas servidas desde la caché.
Variasi itu H2.X por permintaan pemisahan aparece cuando, al degradar, el sisi hadapan bahagian hadapan el \r\n\r\n de cierre de cabeceras y convierte tu prefijo en una petición completa. Se observó un efecto dominó: cada usuario recibía la respuesta destinada al anterior, con eksposi de PII y cookies de sesión. Algunos intentos de parcheo incompletos dejaron vias como inyección en pseudo-cabeceras o blok CRLF tetapi tidak LF suelto, que sigue siendo boleh dieksploitasi.
Túneles de petición (meminta terowong): mengesahkan y explotar
Hay depan-hujung que tiada reutilizan conexiones bahagian belakang atau politik aplikatif 1:1 dengan pelanggan. En estos escenario, tiada puedes influir en la siguiente petición y las técnicas clásicas de confirmación fallan. Lo que sí queda es el túnel de petición: colar una segunda solicitud en el mismo viaje y obtener dos respuestas del back-end.
La confirmación con H1 es ambigua porque concatenar respuestas es normal en keep-alive. Con H2, si ves cabeceras HTTP/1 incrustadas en el cuerpo de la respuesta H2, tienes la prueba del algodón. Masalah tambahan: algunos bahagian hadapan 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 cambiar a KEPALA en la solicitud visible, de forma que la primera respuesta traiga cabeceras solo. Esto hace que el front-end sobre-lea y te entregue el inicio de la segunda respuesta. Ya juga tuneas una segunda solicitud invalida, su respuesta de error suele llegar antes y facilita la detección. Sepuluh paciencia: por kepekaan temporal, puede requerir varios intentos.
Untuk explotar de verdad, céntrate en cabeceras internas que el front-end inyecta (identidad del usuario, claves internas, routing). Con permintaan terowong puedes bypassar la reescritura/protección y colarlas sin filtros. Jika tidak dikenali sebagai 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 part de tu payload es cabecera, insertará sus internas en medio; el back puede tratarlas como part de tu parámetro y reflejarte esos valores. Esta técnica es útil incluso cuando el túnel es ciego y solo recuperas una respuesta.
En condiciones favorables, el túnel permite un avanzado keracunan cache: usando HEAD, mezclas cabeceras de una respuesta con Reflektor lokasi de otra y consigues que navegadores mentafsir el contentido seperti HTML/JS, tomando control persistente de rutas cacheadas.
Primitivas tambahan: duplicados, :scheme y division de nombres
HTTP/2 membenarkan senario tidak boleh diganti dalam H1: dia melihat perkhidmatan que aceptan multiples :path y usan uno u otro de forma inconsistente, abriendo vias de desvío de ruta. Tambien existe la coexistencia de :pihak berkuasa y Hos; al poder faltar uno u otro, emergen ataques de Pengepala Hos cambiado cómo una capa u otra resuelve el destino.
La pseudo-cabecera : skim merece atención. Algunos sistemas la usan for construir URLs de forma ingenua; si puedes escribir bytes arbitrarios, inyectas prefijos de URL, laluan cambias y en occasiones envenenas caches o provocas SSRF si se utiliza para rutear la petición aguas abajo.
Teknik lain ialah bahagian nombre de cabecera permitiendo dos points en el nombre. Tiada siempre genera desync porque el downgrade añade otro : muktamad, tetapi sí favouce ataques de Host cuando los servidores ignoran lo que sigue al puerto. Si el back tolera rarezas, puedes forzar líneas de petición válidas inyectando espacios en : kaedah (memerhati dan menggabungkan mod_proxy) untuk saltarte bloqueos de rutas.
Oleh itu, hujung belakang jerami yang boleh digunakan lipatan garisan en H1. Si el front-end acepta nombres de cabecera que empiezan con espacio y no ordena cabeceras, puedes contaminar cabeceras posteriores (termasuk internas). Se han visto ejemplos donde el Permintaan-Id reflejado terminaba mostrando data insertados mediante una cabecera con espacio inicial.
Herramientas, flujo de trabajo y trucos de productividad
Untuk automatizar, wujud un susun HTTP/2 dipermudahkan dalam Turbo Intruder que transforma solicitudes H1 and H2 y aplica mapeos de carcteres útiles for exploits: ^ → \r, ~ → \n, ` → :. anda boleh juga sobrescribir pseudo-cabeceras declarándolas como cabeceras H1 ficticias y controlar así el downgrade and servidores vulnerable. Untuk mengurangkan panggilan balik dan mengesan avanzada de interacciones puedes usar Burp Collaborator en flujos automatizados.
Si el stack H2 minimalista no se lleva bien con algún objetivo, puedes invocar el stack nativo de Burp desde Turbo Intruder (Enjin.BURP2), que es más tolerante con comportamientos raros. Burp Scanner dan sambungan seperti Penyeludup Permintaan HTTP ya integran detecciones de estas variantes (incluida la de túnel con KEPALA), y Param Miner ayuda a descubrir cabeceras internas por diferencias de respuesta.
En cuanto a estabilidad, vigila la reutilización de conexiones: algunos mensasarkan tratan la primera petición de forma distinta o se quedan con sockets corruptos. En Burp Repeater puedes nyahaktifkan penggunaan semula H2, y en Turbo Penceroboh ajustar requestsPerConnection untuk evitar que efectos residuales distorsionen tus pruebas.
En la interfaz actual de Burp (nuevos Inspectores), el kawal versi HTTP está en Minta atribut arriba a la derecha. Cambiar el método dentro del cuerpo ya tiada kesan como ocurría en versiones antiguas; ahora se maneja todo desde la vista del Inspektor y la logica de protocolo.
Ejercicio práctico con Burp: CRLF en nombres de cabecera y túnel a /admin
mulakan dengan a GET / my Repeater, sube a H2 en Minta Atribut y añade una cabecera arbitraria. En el nama, inyecta un CRLF para colar un Tuan rumah tambahan, contohnya: foo: bar\r\nHost: abc dan bagaimana Valor pon algo inocuo. Si la respon reacciona a tu Hos inyectado, telah mengesahkan satu inyección de CRLF melalui nombres de cabecera.
Setempatkan titik akhir que refleje parametros (como un cari). Cambia el método con clic derecho (Tukar kaedah permintaan) y confirma que la búsqueda funciona con POST enviando search en el cuerpo. Ahora, en la cabecera arbitraria, inyecta un Content-Length grande dan carian parametro segundo tras un doble CRLF, sebagai contoh: foo: bar\r\nContent-Length: 500\r\n\r\nsearch=x.
Rellena el cuerpo principal con data de relleno hasta superar el Content-Length smuggleado. Al enviar, la applicación reflejará cabeceras añadidas por el front-end (kuki sesi, bendera SSL y, sangat penting, satu clave única de front-end) dentro de la respuesta.
Cambia el método boleh dilihat a KETUA y en la cabecera maliciosa smugglea satu petición GET al panel de administración con las cabeceras internas que mempunyai 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. Si recibes un error de byte insuficientes, apunta a un recurso con cuerpo más corto (contohnya, /login) para que el front-end sobre-lea y te muestre el inicio de la segunda respuesta en el cuerpo H2.
En esa respuesta anidada podrás localizar la URL administrativa sensible (contohnya, /admin/delete?username=carlosdan actualizar la ruta de la petición smuggleada. Aunque la respuesta visible puede ser de error, la acción se ejecuta porque ha viajado por el túnel hasta el back-end con las credenciales internas correctas.
Contoh idea agrupa varias: CRLF en nombre de cabecera en H2, penyalahgunaan de Content-Length en turun taraf, pengesahan con KETUA dan penggunaan cabeceras internas inyectadas por el front para alcanzar un panel restringido.
La combinación de conocimientos de protocolo, Inspektor de Burp para H2, y técnicas desync te permite cubrir vectores que van desde el penyeludupan clásico reimaginado sehingga keracunan de caché berterusan, melalui fugas de PII y pengeluaran JavaScript di tapak perfil. Con ajustes bien medidos (protocolo por defecto, reutilización de conexiones, overrides de ALPN) dan práctica con Repeater e Inspector, tendrás mengawal real sobre cómo viajan tus peticiones dan cómo se rompen las asunciones entre capas cuando se enfrentan HTTP/2 y HTTP/1.
