Como eu interativamente digito a consulta \ r \ n-terminada no netcat?

6
$ nc example.com 80
GET / HTTP/1.1
Host: example.com 

HTTP/1.1 200 OK
...

Funciona, o separador de linha é apenas 0A aqui, em vez de 0D0A .

Como eu digito uma consulta 0D0A -separated no netcat?

É fácil fazer uma coisa única com printf digitando manualmente \r\n a cada vez ou implementar algum todos como o onliner Perl e canalizá-lo para nc , mas talvez haja uma maneira fácil falta?

    
por Vi. 18.07.2015 / 12:38

2 respostas

9

Meu netcat tem uma opção -C ou --crlf para substituir \n por \r\n em stdin.

Como alternativa, depende de qual terminal você está usando. Minhas configurações padrão podem ser vistas por:

$ stty -a
... lnext = ^V; ...

Isso mostra que o caractere literal-next para entrada é control-V . Então digitar control-v seguido por control-m irá inserir um retorno de carro (em oposição a uma nova linha, que é o que você obtém quando atinge o return ou enter chave).

    
por 18.07.2015 / 13:30
1

Você pode canalizar uma string para nc :

echo -ne 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n' | nc example.com 80

Verifique com:

$ echo -ne 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n' | hd
00000000  47 45 54 20 2f 20 48 54  54 50 2f 31 2e 31 0d 0a  |GET / HTTP/1.1..|
00000010  48 6f 73 74 3a 20 65 78  61 6d 70 6c 65 2e 63 6f  |Host: example.co|
00000020  6d 0d 0a 0d 0a                                    |m....|
00000025
    
por 18.07.2015 / 13:09