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

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

 » Programação Scripts » Batch / Bash / SH » [Dica] 3 Formas de fazer Request http em shell-script

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

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

mmxm


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: [Você precisa estar registrado e conectado para ver 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

[Você precisa estar registrado e conectado para ver 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

avatar
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/

...


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: /hacker.fts315
Skype: hackerfts315
http://endoffile.umforum.net

mmxm


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

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


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: /hacker.fts315
Skype: hackerfts315
http://endoffile.umforum.net

cyberwar

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

yer123

avatar
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


_________________ASSINATURA_________________


"Não quero ser só mais um." - EU

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum