CURL request usando o arquivo .netrc

0

Estou tentando escrever um script que está salvando as credenciais em um arquivo .netrc e, em seguida, está lendo o arquivo para passá-las a um comando curl e salva o arquivo de cookie retornado para uso futuro. Estou interessado se esta é a maneira segura de passar o nome de usuário e senha e se houver um homem no meio ataque seria capaz de farejar as credenciais se o servidor que eu estou tentando alcançar é sobre HTTP.

#!/bin/bash

IP="192.168.0.1"
user="Administrator"
pass="Password1234"

function credentials {
    mkdir "${HOME}"/.netrc
    rm "${HOME}"/.netrc/credentials.txt
    touch "${HOME}"/.netrc/credentials.txt
    { echo "machine ${IP}"; echo "login ${user}"; echo "password ${pass}"; } >> "${HOME}"/.netrc/credentials.txt
    chmod 600 "${HOME}"/.netrc/credentials.txt
}

function cookie {
    curl -v -c cookie.txt -n "${HOME}"/.netrc/credentials.txt http://"${IP}"/setup.php
}

credentials
cookie

Eu verifiquei e o arquivo credentials.txt foi salvo corretamente no diretório correspondente e as credenciais têm as permissões corretas, mas quando tento executar a função de cookie, recebi o seguinte erro: Couldn't find host 192.168.0.1 in the .netrc file; using defaults . Por que o curl não é capaz de buscar o nome de usuário e senha configurados do arquivo credentials.txt?

    
por Georgе Stoyanov 05.03.2018 / 14:14

1 resposta

4

Pelo que entendi a man page (de curl), a opção -n apenas permite procurar por um arquivo .netrc , mas não espera o caminho do arquivo deste arquivo. Esta é a opção --netrc-file . Do man-page:

--netrc-file
   This option is similar to --netrc, except that you provide the 
   path (absolute or relative) to the netrc file that Curl should use. 
   You can  only  specify one netrc file per invocation. If several 
   --netrc-file options are provided, only the last one will be used.       
   (Added in 7.21.5)

   This option overrides any use of --netrc as they are mutually 
   exclusive.  It will also abide by --netrc-optional if specified.
    
por 05.03.2018 / 14:55