Presentadas Cuatro Nuevas Variantes De HTTP Request Smuggling En BlackHat 2020
Tras 15 años de su descubrimiento, se han encontrado nuevas variantes de este tipo de ataque en Abyss X1, Squirt y CRS en conjunto con servidores tan populares como IIS, Apache o Tomcat
Han pasado ya 15 años desde que escribimos por primera vez sobre este tipo de ataque, el cual ha pasado casi desapercibido durante todo este tiempo. Los ataques HTTP Request Smuggling (abreviado como HRS) consisten de realizar peticiones HTTP especialmente preparadas para que dos o más dispositivos (como proxies, cachés, clientes, etc.) visualicen contenidos diferentes.
Esta desincronización que se da entre los diferentes dispositivos puede ser aprovechada junto con otros ataques para secuestrar la sesión de otros usuarios, insertar contenido que no corresponde al de la petición, entre otros posibles usos.
En total se han encontrado 4 nuevas variantes, y se ha demostrado que una quinta ya conocida seguía siendo explotable a día de hoy. La primera de ellas, titulada «Header SP/CR junk», consiste en incluir dos cabeceras ‘Content-Length’ (una de ellas manipulada), empleando una u otra dependiendo del dispositivo.
La segunda variante, «Wait for It», en vez de utilizar 2 cabereceras ‘Content-Length’, una sin manipular y otra manipulada, utiliza sólo una manipulada. Mientras que servidores como Abyss interpretan la manipulada, si el otro servidor la ignora, éste desecha la petición y procesa la siguiente, tomando Abyss el contenido de la segunda como si fuese de la primera.
«HTTP/1.2 to bypass CRS», la tercera de las variantes, describe cómo puede saltarse CRS simplemente usando HTTP/1.2, ya que dependiendo del servidor se trata el protocolo como HTTP/1.2 como tal o lo transforma en HTTP/1.1.
Finalmente, la cuarta (titulada «a plain solution») y último de los nuevos ataques, indica cómo puede saltarse los niveles 1 y 2 de CRS (conocidos como ‘paranoia level’ o PL) utilizando como cabecera ‘Content-Type: text/plain’ en la petición, sin necesitar nada más. Así de fácil.
Ya se han publicado actualizaciones que solucionan estas vulnerabilidades, encontrándose en Abyss X1 desde su versión 2.14, en Squid desde la 4.12 y 5.0.3, y CRS desde la v3.3.0.
Amit Klein de SafeBreach-Labs ha publicado además de su presentación en la Black Hat del día de ayer 5 de agosto pruebas de concepto (del inglés ‘Proof of Concept’ o PoC) de estas vulnerabilidades en Github para todos los interesados.
Más información:
HTTP Request Smuggling in 2020:
https://www.blackhat.com/us-20/briefings/schedule/#http-request-smuggling-in-2020–new-variants-new-defenses-and-new-challenges-20019
Via: unaaldia.hispasec.com