Obtendo o cookie usado pelo orkut via Google Authentication API

Publicado em 29/01/2008 por Gilson Maluko |


Para obter dados do famoso orkut, necessitá-se de um cookie chamado orkut_state.
Abaixo mostrarei como obter o valor do cookie e como usar esse cookie em aplicações.


Índice

    Fazendo a requisição do cookie

    • Enviando usuário & senha
    • Recebendo o valor auth

    Recebendo o cookie orkut_state

    • Fazendo o pedido
    • Recebendo o valor do cookie

    Exemplos

Fazendo a requisição do cookie

Nesta etapa enviaremos usuário & senha para obtermos o valor auth usado na sessão seguinte.

Uma pequena observação importante o Google da suporte a conexão segura(SSL), mas não exige que o conteúdo seja enviado de modo seguro.

Enviando usuário & senha

Use o pedido abaixo para receber o valor do auth usado na segunda parte.

GET https://www.google.com/accounts/ClientLogin?Email=Seu-Email-Aqui&Passwd=Sua-Senha-Aqui&service=orkut HTTP/1.1 CRLF
CRLF

É importante lembrar que se deve colocar “https://www.google.com” no pedido, caso não seja usado uma conexão segura, do contrário pode-se só usar ‘/accounts/Client…’

Não irei fazer ou falar sobre o controle de erro, para saber sobre os possíveis erros que pode acontecer leia isto.

Recebendo o valor auth

Caso o usuário e a senha estejam correto, e acima de tudo o servidor esteja em funcionamento, ele te mandará algo assim:

HTTP/1.1 200 OK
Content-Type: text/plain
Cache-control: no-cache
Pragma: no-cache
Content-Length: 626
Date: Thu, 08 Nov 2007 05:13:58 GMT
Server: GFE/1.3
Connection: Close
SID=DQAAAIkAAA...
LSID=DQAAAIsAAA...
Auth=DQAAAIwAAA…

Pronto, o nosso valor auth está na mão.

Recebendo o cookie orkut_state

Agora que já temos o valor do auth, o que só nos resta a fazer é o pedido do cookie ao orkut.

Fazendo o pedido

Use o pedido abaixo para receber o cookie.

GET /RedirLogin.aspx?auth=Valor-do-Auth-Aqui HTTP/1.1 CRLF
CRLF

Recebendo o valor do cookie

Caso o servidor esteja em funcionamento e o valor do auth esteja autêntico, o servidor mandará algo assim:

HTTP/1.x 302 Moved Temporarily
Cache-Control: no-cache, must-revalidate, no-cache="Set-Cookie", private
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Set-Cookie: orkut_state=ORKUTPREF=ID=12268830240277865173:…; Domain=www.orkut.com; Path=/; HttpOnly
Set-Cookie: orkut_state=; Domain=.orkut.com; Expires=Wed, 07-Nov-07 04:42:40 GMT; Path=/; HttpOnly
Content-Type: text/html; charset=UTF-8
Location: http://www.orkut.com/
Content-Encoding: gzip
Content-Length: 171
Server: GFE/1.3
Date: Thu, 08 Nov 2007 04:42:40 GMT

Pronto agora é só pegar o valor do cookie orkut_state e usar em suas aplicações.

Exemplos

Fiz alguns exemplos para o melhor entendimento dos processos.

PHP (Download)

*Para o funcionamento correto, deve-se ter os streams registrados e o módulo de socket habilitado.

<?php

header("Content-Type: text/plain");

$error = NULL;
$user = 'usuario';
$pass = 'senha';

// PHP4 - PHP5
function sock($host,$port) {
  global $error;
  if (function_exists('stream_socket_client')) { $handle =   @stream_socket_client($host.':'.$port,&$e0,&$e1); }
  elseif (function_exists('fsockopen')) { $handle = @fsockopen($host,$port,&$e0,&$e1); }
  if (!$handle || $e0 || $e1) { $error[0]= $e0; $error[1] = $e1; return false; }
  return $handle;
}

if ( false === ($handle = sock('www.google.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }

print "Enviando Usuario e Senha…\n";

@fwrite($handle, "GET https://www.google.com/accounts/ClientLogin?service=orkut&Email=".urlencode($user)."&Passwd=".urlencode($pass)." HTTP/1.1\r\n\r\n\r\n");

print "Enviado Usuario e Senha.\n";

print "Recebendo valor do auth…\n";

while (!@feof($handle)) {
  if ( @preg_match('/^auth=([^\n\r]+)/i', @fgets($handle), $auth) ) {
    fclose($handle);
    unset($handle);
    break;
 }
}

if (!$auth[1]) { print "Error ao pegar o valor 'auth'\n"; exit; }

print "Valor 'auth' recebido.\n";

if ( false === ($handle = sock('www.orkut.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }

print "Enviando pedido do cookie…\n";

@fwrite($handle, "GET /RedirLogin.aspx?auth=".$auth[1]." HTTP/1.1\r\nHost: www.orkut.com\r\n\r\n");

print "Pedido enviado.\n";

print "Recebendo valor do cookie…\n";

while (!@feof($handle)) {
  if ( @preg_match('/^set-cookie:\sorkut_state=([^;]+)/i', @fgets($handle), $cookie) ) {
    fclose($handle);
    unset($handle);
    break;
  }
}

if (!$cookie[1]) { print "Error ao pegar o valor do cookie"; exit; }

print "Cookie pegado com sucesso. veja o seu valor: ".$cookie[1]."\n\n";

# Pegando a sorte de hoje

print "Solicitanto sorte de hoje…\n";

if ( false === ($handle = sock('www.orkut.com',80)) ) { print 'Error: '.$error[0].'# '.$error[1]."\n"; exit; }

print "Enviando pedido…\n";

@fwrite($handle, "GET http://www.orkut.com/Home.aspx HTTP/1.1\r\nCookie: orkut_state=".$cookie[1]."\r\nAccept-Charset: ISO-8859-1\r\n\r\n");

print "Pedido enviado.\n";

print "Recebendo sorte de hoje…\n";

while (!@feof($handle)) {
  if ( @preg_match('/<b>Sorte\sde\shoje\s?:\s?<\/b>([^<]+)<br>/i', @fgets($handle), $sorte) ) {
    fclose($handle);
    unset($handle);
    break;
  }
}

if (!$sorte[1]) { print "Error ao pegar sua sorte de hoje"; exit; }

print "Sua sorte de hoje: '".str_replace("&nbsp;","",$sorte[1])."'\n";

?>

mIRCscript (Download)

;
; Sintaxe
;   /GetSorte
;
; Descrio
;   Retorna a "sorte de hoje", primeiro deve-se usar o "/getOrkutCookie"
;
alias GetSorte {
  if (!%Orkut.Cookie) {
    echo -s * Cookie no encontrado, primeiro use //getOrkutCookie usurio senha
    return
  }
  unset %Orkut.Sorte
  sockopen GetSorte www.orkut.com 80
}
on *:sockopen:GetSorte:{
  var %sn = $sockname, %w = sockwrite -tn %sn
  SocketError $sockerr $event %sn
  %w GET /Home.aspx HTTP/1.1
  %w Host: www.orkut.com
  %w Accept-Charset: ISO-8859-1
  %w Cookie: orkut_state= $+ %Orkut.Cookie
  %w Connection: close
  %w
}
on *:sockread:GetSorte:{
  var %sn = $sockname, %m = $sock(%sn).mark
  SocketError $sockerr $event %sn
  sockread %a
  while ($sockbr) {

    if ( $regex(%a,/<b>Sorte\sde\shoje\s?:\s?<\/b>([^<]+)<br>/i) ) {
      set %Orkut.Sorte $remove( $regml(1), &nbsp;)
      echo -s * Sua sorte de hoje: %Orkut.Sorte
      sockclose %sn
      halt
    }
    ;Debug
    ;echo -s * %a
    sockread %a
  }
}
on *:sockclose:GetSorte:{

  if (!%Orkut.Sorte) {
    echo -s * Erro ao pegar a sua sorte de hoje. =\
  }

}

;
; Sintaxe
;   /getOrkutCookie usurio senha
;
; Descrio
;   Obtm o valor do cookie orkut_state
;
alias getOrkutCookie {
  if (!$2) { echo -s * Error: sintaxe correta /getOrkutCookie $chr(2) $+ usuario senha | return }
  if ($sock(Orkut.GET)) { echo -s * Wait: Voce ja estar realizando um processo, por favor aguarde… | return }
  unset %Orkut.*
  set %Orkut.User $replace($1,@,% $+ 40)
  set %Orkut.Pass $2
  Orkut.Open
}
alias Orkut.Open {
  var %n = Orkut.GET
  if ($sock(%n)) { sockclose %n }
  sockopen %n $+(www.,$iif($1,orkut,google),.com) 80
  sockmark %n $1
}
on *:sockopen:Orkut.GET:{
  var %sn = $sockname, %m = $sock(%sn).mark, %w = sockwrite -tn %sn
  SocketError $sockerr $event %sn
  if (%m) { %w GET /RedirLogin.aspx?auth= $+ %Orkut.Auth HTTP/1.1 | %w Host: www.orkut.com }
  else { %w GET https://www.google.com/accounts/ClientLogin?service=orkut&Email= $+ %Orkut.User $+ &Passwd= $+ %Orkut.Pass HTTP/1.1 }
  %w Connection: close
  %w
  if (%m) {
    echo -s * Recebendo o cookie…
  }
  else { echo -s * Enviando Usuario & Senha… }
}

on *:sockread:Orkut.GET:{
  var %sn = $sockname, %m = $sock(%sn).mark
  SocketError $sockerr $event %sn
  sockread %a
  while ($sockbr) {
    if (%m && $regex(%a,/^set-cookie:\sorkut_state=([^;]+)/i)) {
      unset %Orkut.*
      set %Orkut.Cookie $regml(1)
      echo -s * Cookie Pegado com sucesso. digite ‘//echo % $+ Orkut.Cookie’ para ver seu valor.
    }
    elseif ( $regex(%a,/^auth=([^\r\n]+)/i) && !%m && $regml(1)) { set %Orkut.Auth $regml(1) | Orkut.Open 1 }
    ;Debug
    ;echo -s * %a
    sockread %a
  }
  {
    goto eof
    :error
    /reseterror
    :eof
  }

}
on *:sockclose:Orkut.GET:{
  var %m = $sock(%sn).mark
  if (%m && !%Orkut.Cookie) {
    echo -s * Ocorreu algum erro ao pegar o valor do cookie orkut_state
  }
  elseif (!%m && !%Orkut.auth && !%Orkut.Cookie) {
    echo -s * Usurio/Senha invlido, ou erro no servidor.
  }
}
alias SocketError {
  ;SocketError $sockerr $event %sn
  if ($1) {
    echo -s +ERR ( $+ $2 $+ )[ $+ $1 $+ ] em $3
    return haltdef
  }
}

Espero ter ajudado muitos.

Erros? Dúvidas? Sugestões? Deixa no comentário!


Leia Também:




33 Comentários

  1. como faço pra exclui o cookei

  2. diogo padilha Diz:

    como fazer para exclui o cookei???

  3. nao consigo entrar no meu orkut ja fazem dois dias, oque tenho que fazer

  4. ja fazem dois dias que tento entrar no meu orkut e nao consigo, oque tenho que fazer….

  5. FLAVIA LONGO ZAMUNER Diz:

    como faço para excluir o cookie?
    por que nao consigo entar no meu orkut ha de 4 dias, o que faço?

  6. Toda vez que tento entrar no meu orkut… ao colocar usuario e senha, aparece uma mensagem de cookie desativado, mas pesquisei e percebi que não tem cookie nehum no meu pc, acho que deletei sem querer!!! Como faço pra adquirir esse cookies nevamente???? Por favor me ajudem!

  7. ja fazem dois dias que tento entrar no meu orkut e nao consigo, o que tenho que fazer….

  8. veronice correia Diz:

    Ja fazem 5 dias que tento entrar no meu orkut e ñ consigo, o que tenho que fazer?

  9. Rosiane Ferreira Pimentel Diz:

    não consigo entrar no orkut,e também não consigo acessar meu gmail,por que? eu preciso com urgencia.

  10. não estou conseguindo entrar no meu orkut, aparece uma msg de erro como posso solucionar esse problema?

  11. Gilson Maluko Diz:

    Pessoal, milhões de desculpas por demorar a responder.

    Então vamos ao que importa:

    Diogo: O cookie auto se deleta ao termino do script.

    Patricia Gonçalves: Qual erro que ocorre quando tenta entrar?

    Flávia Longo: Esse script não interfere em nada, ao menos que tenha feito alguns request’s repitidamente em pouco tempo.

    Daniela: Veja as configurações do seu navegador e tente logar denovo no orkut normalmente. apos fazer isso entre em contato novamente. ^^

    Leide, Veronice, Gabriela, Rosiane: Tente ser mais detalhista, tente falar sobre os possiveis erros e mensagens que aparece quando tenta entrar no orkut.

  12. Oi!
    Estou com um serio problema!nao consigo assessar meu orkut! empre que tento me logar aparece uma menssagem de erro disendo que meu kookie esta desativado! ja nao sei o que fasso! ja mudei as configurassoes do meu navegador e nada da geito!sempre aquela menssagem sinistra aparece me atormentando!pesso ajuda urgente ja que estou a mais de duas semanas sem entrar.

    grato!

  13. Vlw Rapz!

    Visitem: http://www.galerarox.net

  14. Não consigo entrar no meu orkut, diz que cokies desativado……..como faço me ajudem.

  15. eu achei interessante

  16. Galera por favor respondam pq nao estou conseguindo entrar no meu orkut acho q e isso aki pq aparece na pag inicial do orkut.com >
    https://www.google.com/accounts/ServiceLogin?service=orkut&hl=pt-BR&rm=false&continue=http..aki estava escrito outra coisa .. http://www.orkut.com/RedirLogin.aspx..aki estava escrito outra coisa ..Dhttp%%%www.orkut.com.br%Home.aspx&cd=BR&passive=true&skipvpage=true&sendvemail=false

    Por favor me ajudem Pois ja q voces encinaram isso ai espero q saibam me ensinar como desfer isso pq nunca tinha visitado esta pg e agora aparece isto no meu orkut investiguei e encontrei isto ai e acho q deve ter cido a causa de todo o meu desespero. Desde ja obrigado

    e respondam por favor

  17. Olá,

    Gilson, tudo bem?
    Estou tentando pegar a lista de usuarios do Orkut usando C#.
    Você tem alguma dica para me passar.
    Quando ele retorna a URL de redirect, simplesmente não tenho mais controle sobre a página.

  18. MEU ORKUT NAO QUER ENYRAR FALA PARA MIN ATIVAR O COOKIES QUE EU FAÇO

  19. ALGUEM ME AJUDA POR FAVOR EU TENTO ENTRAR NO MEU ORKUT MAS TODA VEZ QUE TENTO ENTRAR DISSEM QUE MEU COOKIES ESTA DESATIVADO O Q EU FAÇO ESTOU A MAIS DE 1 MES SEM ENTRAR NO MEU ORKUT ALGUEM ME AJUDE

  20. ALGUEM ME AJUDE POR FAVOR ESTOU TENTANDO EMTRAR NO MEU ORKUT MAS TODA VES APARECE UMA MENSAGEM DISENDO QUE MEU COOKIES ESTA DESATIVADO O Q EU FAÇO ME AJUDE POR FAVOR

  21. Gostaria de saber como, tendo este cookie em mãos, eu posso cria-lo nos cookies do meu navegador. Uso PHP e tenho logins dos usuarios do sistema da empresa em meu banco de dados e gostaria de permitir que somente pessoas autorizadas pudessem logar. Já consigo bloquear todos, isso não é problema, somente falta automatizar esse login. Grato.

  22. mandar pelo hotmail

  23. não consigo entrar no orkut tbm! aki fala pra ativar o cookie, eu acho q exclui o cookie sem querer e já fiz d tudo mais nao consigo entrar!!
    ajudaa X_X

  24. PESSOAS ENGANADAS….É INCRIVEL COMO ISSO ACONTECE COM TANTA FREQUENCIA! xD

    !Lammers!

  25. ISSO É MENTIRA Diz:

    ISSO É MENTIRA só serve para roubar orkuts
    ISSO É MENTIRA só serve para roubar orkuts
    ISSO É MENTIRA só serve para roubar orkuts
    ISSO É MENTIRA só serve para roubar orkuts

  26. ISSO É MENTIR Diz:

    ISSO É MENTIRA só serve para roubar orkuts

  27. OoOi..
    Meu marido bloqueo o site do orkut pra que eu nao posso mas, entrar, gostaria de saber como faco pra desbloquear.
    brigadoo

  28. luiz carlos pinto Diz:

    oi.
    Toda ves q eu entro no orkut dis q o cookie esta desativado oque eu faço estou dezes perado!!!!!!!
    me ajude. porfavor obrigado

    ME RESPONDAM PORFAVOR.

  29. é sem noção raquear orkut das pessoas

  30. me respondam

  31. eu quero acessa o cokies do orkut

  32. acho que esclui sem querer os cokies como eu faço para reparar e ativar novamente pois estou a uma semana sem entrar no meu orkut aparece uma mensagem erro de pagina e pede pra ativar cokies o orkut carega mas nao entra oque devo faser por favor me ajudem …grato pela atençao

  33. Rose olhe nas configurações do seu navegador.

Faça seu Comentário