seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[Dica] 3 Formas de fazer Request http em shell-script

4 participantes

Ir para baixo  Mensagem [Página 1 de 1]

mmxm

avatar
avançado
avançado

Irei demonstrar 3 formas diferentes de se obter o conteudo de uma pagina
web usando shell-script , a primeira delas é usando o wget , seque o comando abaixo:

$ wget localhost -O - -q
Caso queira você pode guardar a saida do comando em uma variavel da seguinte maneira:

$ body=$(wget google.com.br -O - -q)
A segunda forma é usando o curl , é tão simples quanto o wget:

$ curl localhost
A terceira forma é usando o /dev/tcp , é um arquivo do sistema que permite que você interaja
diretamente com o protocolo TCP , a sintaxe basica para fazer uma conexão é /dev/tcp/<host>/<porta>
como estamos fazendo um request http , e a porta padrão de servidores http é a 80 nosso
comando ficara da seguinte maneira:
$ exec 5<>/dev/tcp/localhost/80
$ echo -e "GET / HTTP/1.0\n" >&5
$ cat <&5
Diferente dos outros dois comandos vistos anteriormente , alem de ser exibido a source da pagina , os headers
da resposta recebida também serão viziveis na saida do comando.


Os comandos acima foram so um exemplo basico de como fazer um simples request http (GET).
É possivel definir os headers do request , por exemplo , user-agent,
cookies , fazer post request , entre outros vejam os exemplos abaixo:

Post request usando o comando curl:

$ cat /var/www/exemplo.php
<? print_r($_POST); ?>
$ curl -F campo1=valor -F campo2=outro-valor localhost/exemplo.php
Array
(
   [campo1] => valor
   [campo2] => outro-valor
)
caso queira upar um arquivo da maquina local é so colocar um @ seguido do nome do arquivo , exe:

$ curl -F file=@/etc/issue -F enviar=sim site.yyy/upload.php
Definindo user-agent usando o wget:

$ cat /var/www/teste1.php
<?php
print $_SERVER['HTTP_USER_AGENT']."\n";
?>
$ wget --user-agent="TESTE-AGENT" localhost/teste1.php -qO -
TESTE-AGENT

Definindo "referer" usando o /dev/tcp

$ request='GET /referer.php HTTP/1.0
> Host: localhost
> Accept: text/css,*/*;q=0.1
> Referer: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
>
> '
$ exec 5<>/dev/tcp/localhost/80
$ echo -e "$request" >&5
$ cat <&5
HTTP/1.1 200 OK
Date: Wed, 13 Nov 2013 22:32:02 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.9
Vary: Accept-Encoding
Content-Length: 24
Connection: close
Content-Type: text/html

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Os comandos wget e curl tem muitos parametros por isso não abordei todos eles
caso queira saber mais sobre a solução está ai abaixo:

$ man curl
$ man wget
Usando o /dev/tcp corretamente é possivel fazer qualquer tipo de request http
por isso considero a melhor opção Very Happy, mas não a mais pratica , a mais pratica
realmente é o comando curl.

Escrito por MMxM ;-)

Kodo no Kami

Kodo no Kami
master
master

essa 3º eu nao conhecia nao muito show mano *-* , tambem tem o telnet


Código:
telnet 127.0.0.1 80
Get /index.html http/

...

https://endoffile.umforum.net

mmxm

avatar
avançado
avançado

hfts315 escreveu:essa 3º eu nao conhecia nao muito show mano *-* , tambem tem o telnet


Código:
telnet 127.0.0.1 80
Get /index.html http/

...
e o netcat :p

Kodo no Kami

Kodo no Kami
master
master

*-* o canivete suiço é massa a nova versao dele tem ate chat *-*

https://endoffile.umforum.net

cyberwar

cyberwar
colaborador
colaborador

Vocês 2 são realmente master na programação.kkkkkkkkkkkkkkkkkkkk

yer123

yer123
avançado
avançado

Vlw mano .... consegui por fim algo que estava afim de testar...

poe no terminal:

$ curl cktools.hol.es/ip.php; echo

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos