Trabajar sa HTTP/2 sa Burp Suite: pruebas, ajustes at ataques de alto nivel

Huling pag-update: 11/11/2025
May-akda: C SourceTrail
  • HTTP/2 en Burp permite vistas fieles en el Inspector y edición estilo H1 con normalización para explotar vectores exclusivos.
  • Ang pag-downgrade ng H2→H1 ay muling ipinakilala ang H2.CL/H2.TE, humiling ng tunneling at pagkalason sa cache na may epekto.
  • El control fino (protocolo por petición, ALPN override, conexión H2) at ajustes de proyecto marcan hallazgos.
  • Prácticas como CRLF en nombres de cabecera y HEAD para kumpirmahin ang mga túneles descubren cabeceras internas criticas.

HTTP/2 sa Burp Suite

HTTP/2 ha abierto una superficie de pruebas que antes era casi intocable con herramientas centradas en HTTP/1. Burp Suite, sa pamamagitan ng Inspector at sa editor ng mensajes, pinahihintulutan ang manipular at analizar solicitudes H2 con un control que no vas a encontrar en otros productos. Si ya ay may pag-aaral sa web, Dominar cómo Burp trabaja sa HTTP/2 ay clave para descubrir fallos modernos como desincronizaciones, humiling ng smuggling at downgrade o inyecciones impossibles en HTTP/1.

Bukod dito, los ajustes finos de Burp (protocolo por defecto, opciones de Repeater, listeners 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.

Sa pamamagitan ng HTTP/2 cambia las reglas del juego en Burp Suite

Maraming mga serbisyo sa HTTP/2, y con ello aparecen fallos impossibles de detectar si te limitas a HTTP/1. Burp Suite te deja elegir entre dos modos de trabajo con peticiones H2: isa 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.

Sa kumbinasyong ito, 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 smuggling.

Default, 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ón en cada solicitud desde el Inspector.

Ito ay maaaring maging kahinaan sa nivel de protocolo, ito ay hindi mahahalata saber na bersyon ng usas en cada golpe. Burp lo deja claro en varios puntos: línea de petición y de estado en el editor, etiqueta de protocolo en Repeater (zona superior derecha) y Humiling ng Mga Katangian en el Inspector. En contextos no editables, es informativo; tl Proxy/Repetidor, puedes alternar la versionón 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. Kung quieres probar HTTP/2 aunque el servidor no lo announce por ALPN, i-activate ang Payagan ang HTTP/2 ALPN na i-override sa menu ng Repeater y podrás tantear soporte H2 oculto.

Inspektor ng HTTP/2

Conceptos clave de HTTP/2 que necesitas dominar

Ang HTTP/2 ay binario. En HTTP/1 todo es texto y los servidores separan campos con operaciones de cadena (dos puntos, saltos de línea, atbp.). Sa H2, ang mga datos ay están a offsets definidos, 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.

Sa pula, los mensajes H2 viajan en frames: uno de cabeceras (katumbas ng línea de petición + cabeceras de H1) y, si toca, varios de datos con el cuerpo. Burp sa pagiging simple no te muestra los frames por separado; te ofrece una vista unificada para trabajar cómodo sin perder la fidelidad del contenido.

Ang longitud del mensaje en H2 ay ipinaliwanag: cada frame 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 at H1 para hablar con el back-end.

Ipinakilala ng HTTP/2 pseudo-cabeceras que sustituyen a la request line at 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.

Mag-ingat sa pagiging tugma: los nombres de cabecera en H2 deberían ir en minúsculas. Es técnicamente posible usar mayúsculas, pero algunos servidores rechazan la petición por incumplir la especificación. Sa pamamagitan ng eso, la normalización de Burp evita que conviertas sin querer un mensaje válido en H1 at uno invalido en H2.

Pseudo-cabeceras HTTP/2

Dos formas de trabajar con peticiones en Burp: editor vs Inspector

En el editor de mensajes puedes usar una representacion estilo HTTP/1 para sa mga petisyon HTTP/2. Burp normaliza tus cambios y envía un equivalente H2 al servidor. Ito ay perpektong cuando el protocolo te da igual y quieres ir rápido probando la app.

En el Inspector, en cambio, tienes una vista nativa ng 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 puntos en nombres de cabecera, espacios o saltos de línea en método y patho CRLF dentro de cabeceras. Muchas de estas ediciones son tan simples como doble click y teclear, y para ipasok ang CRLF puedes abrir el detalle de la cabecera y usar Shift + Bumalik magpakilala \r\n.

Al hacer ediciones que no se pueden representar en H1 sin perder información, Burp marca la solicitud como initan ng tubig. En ese caso, el editor deja de intentar mostrarte un equivalente H1 y verás una notificación explicando por qué está kettled; el cuerpo sigue visible, pero cualquier cambio en cabeceras lo harás desde el Inspector.

Rastrear y cambiar el protocolo en cada petición

Burp usa HTTP/2 por defecto si el servidor lo anuncia por ALPN. Kung kinakailangan ang centrarte en fallos que requieren H1 (halimbawa, CL.TE o TE.CL clásicos), puedes cambiar el protocolo por defecto del proyecto en Mga Setting > Network > 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 de destino, y en el Inspektor > Humiling ng Mga Katangian. Sa mga nae-edit sa konteksto, pinahihintulutan ng tagapili na ito upgradear o downgradear la solicitud al vuelo.

Kung kailangan mong malaman ang H2 na walang anunciado (HTTP/2 oculto), i-activate sa Repeater Payagan ang HTTP/2 ALPN override. Con esto, podrás forzar HTTP/2 incluso cuando el servidor no lo publique 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 i-deactivate ang HTTP/2 sa isang tagapakinig sa Proxy: Mga Setting > Mga Tool > Proxy > Mga proxy na tagapakinig > I-edit > pestaña HTTP/2 y desmarcar Suporta sa HTTP/2. Esto afecta solo la conexión cliente-Burp; walang cambia la conexión Burp-servidor.

Mga petitiones na initan ng tubig: qué son, cómo se producen y cómo revertirlas

Una petición se vuelve initan ng tubig ipinakilala ni cuando ang modificaciones que no se pueden representar con sintaxis HTTP/1 sin perder information. Halimbawa: 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 :scheme, duplicar pseudo-cabeceras o insertar ; y espacio en un valor de cookie.

Si te has pasado de frenada, puedes deshacer sa pamamagitan ng 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 downgrade ng HTTP/1 aceptando que se perderán cambios incompatibles: Burp normalizará la solicitud y descartará lo ilegible en H1.

Pwede ang mga extension crear y emitir nuevas peticiones kettled, por lo que ya puedes desarrollar tus propios complementos para pruebas en H2. Sin embargo, de momento walang pueden modificar solicitudes kettled que haya creado Burp, porque solo acceden a la representación normalizada estilo H1.

Como mejora en el roadmap de Burp, at 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 sa H2. Puedes mantener el protocolo en redirectiones entre dominio (ipatupad ang pagpili ng protocol) para que los saltos cross-domain sigan con la versionón seleccionada, crucial cuando las vulnerabilidades H2 disparan peticiones a otros hosts. Maaari mo rin 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.

Opción de Repeater: por defecto Burp elimina la cabecera Koneksyon sa solicitudes H2, porque muchos servidores H2 las rechazan. Si te apetece experimentar, puedes cambiar esta conducta y enviar Connection igualmente. Y, tulad ng nakikita mo, Payagan ang HTTP/2 ALPN override te permite forzar H2 aun sin anuncio 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 mga tugon sa streaming para walang 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 kumpleto ang mga stream ng almacenar, eliminar metadatos de chunked o tratar text/event-stream como streaming awtomatiko.

En responses con Katayuan 100, Burp puede entender 100-Magpatuloy (saltando la respuesta intermedia y analizando la real) y retirar cabeceras 100 antes de pasarlas al resto de herramientas. Sa HTTP/1, Burp puede isar keep-alive si el servidor lo soporta y cierra conexiones TCP inactivas a los 5 segundo. Todos estos anak ajustes de projecto, aplican solo al proyecto actual.

HTTP/2 oculto: detection y mitigación

Es habitual encontrar servidores que soportan H2 pero no lo anuncian por ALPN. Esto oculta superficie de ataque y puede derivar en humiling ng smuggling por downgrade. La receta es sencilla: ignora ALPN y prueba a mandar H2. Con Burp (ALPN override en Repeater) o con utilidades como curl usando dating-kaalaman, puedes detectar este patrón rápidamente.

En cuanto a defensa, si quieres usar H2, asegúrate de anunciarlo bien. Hindi mo na kailangan, desactívalo del todo para walang exponer superficie innecesaria. Sa kasamaang palad, ibinababa ang H2->H1, ang mga rekomendasyon ay evitarlos y hablar H2 extremo at extremo.

Mga Ataque at vectores exclusivos de HTTP/2

La gran familia de fallos en H2 llega con el i-downgrade ang H2 at H1 sa front-end. Ang kabuuan ng harap ay ang longitud sa mga frame ng H2, ngunit ang back-end ay nakakasira ng vuelve a Content-Length/Transfer-Encoding. Ipinakilala muli ni Ese desacuerdo ang mga desincronizaciones con nuevas variantes: H2.CL (el harap walang valida CL) y H2.TE (acepta cabeceras de conexión prohibidas como TE).

Un caso celebre de H2.CL nakakaapekto sa isang malaking sitio ng streaming. Al mandar una petición HTTP/2 con Erróneo sa Haba ng Nilalaman y un payload diseñado, el back-end cortaba antes de tiempo y trataba el resto como bagong petisyon, nagpapahintulot prefijar la solicitud de otro usuario. Con un prefijo que provocaba redirectiones controladas, el impacto escalaba a robo de cuentas y datos sensibles.

En la vertiente H2.TE, algunos balanceadores aceptaron indebidamente Transfer-Encoding: chunked en el downgrade y lo priorizaron frente a un Content-Length inectado for el front-end. Resulta: 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 paggamit CRLF dentro del valor de una cabecera H2. En ciertos CDN, esto permitía introducir Transfer-Encoding: chunked al volcarlo a H1 y desencadenar H2.TE con cache poisoning persistent, logrando control de páginas servidas desde la caché.

Ang variant H2.X para sa paghiling ng paghahati aparece cuando, al degradar, el front-end insert el \r\n\r\n de cierre de cabeceras y convierte tu prefijo en una kumpleto ang petisyon. Se observó un efecto dominó: cada usuario recibía la respuesta destinada al anterior, con paglalahad ng PII at cookies ng sesión. Algunos intentos de parcheo incompletos dejaron vías como inyección en pseudo-cabeceras o bloquear CRLF pero hindi LF suelto, que sigue siendo explotable.

Túneles de petición (humiling ng tunneling): confirmar y explotar

Hay front-ends que walang reutilizan conexiones al back-end o aplican politica 1:1 con el cliente. En estos escenario, walang 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 at keep-alive. Con H2, si ves cabeceras HTTP/1 incrustadas en el cuerpo de la respuesta H2, tienes la prueba del algodón. Un problema additional: 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 cambiar a ULO en la solicitud visible, de forma que la primera respuesta traiga solo cabeceras. Esto hace que el front-end sobre-lea y te entregue el inicio de la segunda respuesta. Kung sa karagdagan tuneas una segunda solicitud inválida, su respuesta de error suele llegar antes y facilita la detección. Sampung paciencia: por sensibilidad na temporal, puede requerir varios intentos.

Para explotar de verdad, céntrate en cabeceras internas que el front-end inyecta (identidad del usuario, claves internas, routing). Con humiling ng tunneling puedes bypassar la reescritura/protección y colarlas sin filtros. Kung hindi mo kilala ang mga nombre, isa ang 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 payload es cabecera, insertará sus internas en medio; el back puede tratarlas como parte 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 cache poisoning avanzado: usando HEAD, mezclas cabeceras de una respuesta con Lokasyon reflectante de otra y consigues que navegadores interpreten el contentido como HTML/JS, tomando control persistent de rutas cacheadas.

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

HTTP/2 permite escenarios impensable en H1: he visto servidores que aceptan múltiples :path y usan uno u otro de forma inconsistente, abriendo vías de desvío de ruta. También existe la coexistencia de :autoridad y Host; al poder faltar uno u otro, emergen ataques de Host header cambiando cómo una capa u otra resuelve el destino.

La pseudo-cabecera : scheme merece atención. Algunos sistema ng paggamit para sa pagbuo ng mga URL ng form ng ingenua; si puedes escribir bytes arbitrarios, inyectas prefijos de URL, cambias paths y en occasiones envenenas caches o provocas SSRF si se utiliza para rutear la petición aguas abajo.

Ang isa pang pamamaraan ay ang division del nombre de cabecera permitiendo dos puntos en el nombre. Walang siempre genera desync porque el downgrade añade otro : final, pero sí favorece ataques de Host cuando los servidores ignoran lo que sigue al puerto. Sa likod ng tolera rarezas, puedes forzar líneas de petición válidas inyectando espacios en : paraan (observado en combinaciones con mod_proxy) para sa saltarte bloqueos de rutas.

Sa wakas, hay back-ends que aún soportan pagtitiklop ng linya sa 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 Request-Id reflejado terminaba mostrando datos insertados mediante una cabecera con espacio inicial.

Herramientas, flujo de trabajo y trucos de productividad

Para automatizar, existe un stack HTTP/2 pinasimple sa Turbo Intruder que transforma solicitudes H1 at H2 y aplica mapeos de caracteres útiles para exploits: ^ → \r, ~ → \n, ` → :. Kaya mo rin 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 gumagamit ng 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 (Engine.BURP2), que es más tolerante con comportamientos raros. Burp Scanner at mga extension tulad ng HTTP Request Smuggler ya integran detecciones de estas variantes (incluida la de tunel sa ULO), y Param Miner ayuda a descubrir cabeceras internas por diferencias de respuesta.

En cuanto a estabilidad, vigila la reutilización de conexiones: tinatarget ng algunos ang tratan la primera petición de forma distinta o se quedan con sockets corruptos. En Burp Repeater puedes desactivar la reutilización H2, y en Turbo Intruder ajustar requestsPerConnection para evitar que efectos residuales distorsionen tus pruebas.

En la interfaz actual de Burp (nuevos Inspectores), el control de la version HTTP está en Humiling ng mga attribute arriba a la derecha. Cambiar el método dentro del cuerpo ya walang epekto como ocurría en versiones antiguas; ahora se maneja todo desde la vista del Inspector y la logica de protocolo.

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

magsimula sa a GET / tl Repeater, sube a H2 en Humiling ng Mga Katangian y añade una cabecera arbitraria. En el pangalan, inyecta un CRLF para colar un Paghandaan karagdagang, halimbawa: foo: bar\r\nHost: abc at paano tapang pon algo inocuo. Si la response reacciona a tu Host inyectado, may confirmado una inyección de CRLF sa pamamagitan ng nombres de cabecera.

Localiza un endpoint que refleje parámetros (como un paghahanap). Cambia el método con clic derecho (Baguhin ang paraan ng kahilingan) y confirma que la búsqueda funciona con POST enviando search en el cuerpo. Ahora, en la cabecera arbitraria, inyecta un Content-Length grande at segundo parámetro paghahanap tras un doble CRLF, halimbawa: 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 applicación reflejará cabeceras añadidas por el front-end (cookies de sesión, mga flag ng SSL y, mahalaga, una clave única de front-end) dentro de la respuesta.

Cambia el método na nakikita a HEAD y en la cabecera maliciosa smugglea una petición 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. Si recibes un error de kulang ang bytes, apunta a un recurso con cuerpo más corto (halimbawa, /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 (halimbawa, /admin/delete?username=carlos) At 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 credentiales internas correctas.

Halimbawa ng agrupa varias na mga ideya: CRLF en nombre de cabecera en H2, abuso de Content-Length en downgrade, confirmación con HEAD at paggamit ng cabeceras internas inyectadas por el front para alcanzar un panel restringido.

La combinación de conocimientos de protocolo, Inspector de Burp para sa H2, y técnicas de desync te permite cubrir vectores que van desde el smuggling clásico reimaginado hanggang sa patuloy na pagkalason sa cache, dumadaan fugas de PII y ejecución ng JavaScript sa mga site ng alto perfil. 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 at tungkol sa cómo se rompen las asunciones entre capas cuando se enfrentan HTTP/2 at HTTP/1.

mga uso ng Burp Collaborator
Kaugnay na artikulo:
Mga tip sa Burp Collaborator: guía completa y práctica
Kaugnay na mga post: