Como salvar os cabeçalhos POST & GET de uma página da web com o “Wireshark”?

0

Estou tentando encontrar um código python que faça login na minha caixa de correio no yahoo.com do "Google App Engine". Eu recebi este código:

import urllib, urllib2, cookielib

url = "https://login.yahoo.com/config/login?"
form_data = {'login' : 'my-login-here', 'passwd' : 'my-password-here'}

jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
form_data = urllib.urlencode(form_data)
# data returned from this pages contains redirection
resp = opener.open(url, form_data)
# yahoo redirects to http://my.yahoo.com, so lets go there instead
resp = opener.open('http://mail.yahoo.com')
print resp.read()

O autor deste script examinou o script HTML do formulário de login do yahoo e veio com este script.

Esse formulário de login contém dois campos, um para o Yahoo! ID e outro é para a senha dos usuários.

No entanto, quando experimentei esse código (substituindo mu login Yahoo real por 'meu-login-aqui' e minha senha real por 'minha-senha-aqui'), ele apenas retorna o formulário de login para mim , o que significa que algo não funcionou direito.

Outro apoiador sugeriu que eu enviasse um hash MD5 da minha senha, em vez de uma senha simples.

Ele também notou que nesse formulário de login existem muitos outros campos ocultos além dos campos de login e senha (ele os chamou de "proteções CSRF") com os quais eu também teria que lidar:

<input type="hidden" name=".tries" value="1"> 
<input type="hidden" name=".src" value="ym"> 
<input type="hidden" name=".md5" value=""> 
<input type="hidden" name=".hash" value=""> 
<input type="hidden" name=".js" value=""> 
<input type="hidden" name=".last" value=""> 
<input type="hidden" name="promo" value=""> 
<input type="hidden" name=".intl" value="us"> 
<input type="hidden" name=".bypass" value=""> 
<input type="hidden" name=".partner" value=""> 
<input type="hidden" name=".u" value="bd5tdpd5rf2pg"> 
<input type="hidden" name=".v" value="0"> 
<input type="hidden" name=".challenge" value="5qUiIPGVFzRZ2BHhvtdGXoehfiOj"> 
<input type="hidden" name=".yplus" value=""> 
<input type="hidden" name=".emailCode" value=""> 
<input type="hidden" name="pkg" value=""> 
<input type="hidden" name="stepid" value=""> 
<input type="hidden" name=".ev" value=""> 
<input type="hidden" name="hasMsgr" value="0"> 
<input type="hidden" name=".chkP" value="Y"> 
<input type="hidden" name=".done" value="http://mail.yahoo.com"> 

Ele disse que eu deveria fazer o seguinte:

  1. Simule o login normal e salve a página de login que recebo;
  2. Salve os cabeçalhos POST & GET com "Wireshark";
  3. Compare a página de login com esses cabeçalhos e veja quais campos preciso incluir com minha solicitação;

Eu realmente não sei como realizar os dois primeiros desses três passos. Acabei de baixar o "Wireshark" e tentei capturar alguns pacotes lá. No entanto, não sei como "simular login normal e salvar a página de login". Além disso, não sei como salvar cabeçalhos POST $ GET com o "Wireshark". Alguém pode, por favor, me guiar através destes dois passos em "Wireshark"? Ou pelo menos me diga com o que eu deveria começar. Obrigado.

    
por brilliant 09.04.2010 / 01:00

2 respostas

2

Você não precisa do Wireshark para isso. O Firebug é perfeitamente capaz de separar solicitações e respostas diretamente do Firefox.

    
por 09.04.2010 / 01:04
1

Quando você foi solicitado a

simulate normal login and save the login page

foi um pedido para você acessar sua conta do Yahoo como faria normalmente em um navegador da Web e salvar a página.

Quanto a variáveis HTTP POST / GET & salvando-os, eu não tenho experiência, mas você provavelmente deve dar uma olhada em esta SO resposta

Parece que você é o OP para o Q em SO -.-

    
por 09.04.2010 / 05:23