ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Vkontakte авторизация [DELPHI]
  #12  
Старый 26.07.2008, 15:37
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию Vkontakte авторизация [DELPHI]

Vkontakte авторизация [DELPHI (WinSock) ]

***

[intro]

По многочисленным просьбам в ПМ, написал мини статейку про авторизацию на сайте vkontakte.ru (Все на сокетах.)


[Исходный код с комментариями]

глобальная переменная.
Код:
var
sBuff:array [1..6000] of char;//буфер для хранения полученного заголовка страницы
//-------------------------------------------------------
Код:
procedure Err(n:integer);//Функция обработки ошибок
  begin if n<>0 then
    begin
	MessageBox(0,pchar('Error #'+inttostr(WSAGetLastError)),'Error',mb_ok);
	halt
    end
  end;
//-------------------------------------------------------
Код:
function CopyCookie(s,sBuff:string):string;//Функция для копирования cookie(страница 302)
var
text:string;
i:integer;
 Begin
  text:='';
  For i:=pos(s+'=',sBuff) to Length(sBuff) Do
    Begin
      If sBuff[i]<>';' then text:=text+sBuff[i] else Break;
    End;
  Result:=text;
 End;
//-------------------------------------------------------
Код:
function redirect(sBuff:string):string;//Функция для выдирания id, из set-cookie
var
text:string;
  Begin
    text:=trim(copy(sBuff,pos('/id',sBuff),pos('Content-Encoding',sBuff)-pos('/id',sBuff)));
    result:=text;
  End;
//-------------------------------------------------------
Описываем переменные.
Код:
var
wData:WSAData;
s:TSOCKET;
addr:sockaddr_in;
email,pass,sendbuff:string;//мыло, пасс, пакет для отправки пост или гет запросов
PostData:string;//отправляемые данные, мыло с пассом
//-------------------------------------------------------
Начинаем, пытаемся загрузить библиотеку.
Код:
Begin
  email:=Edit1.Text;//мыло
  pass:=Edit2.Text;//пасс
  if WSAStartup(makeword(1,1),wData)<>0 then
  Begin
    ShowMessage('нет носков');
    exit;
  End;
Создаем сокет, коннектимся.
Код:
  s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  FillChar(addr, SizeOf(sockaddr_in), 0);
  addr.sin_family:=AF_Inet;
  addr.sin_port:=htons(80);
  addr.sin_addr.S_addr:=inet_addr('195.190.105.238');//IP vkontakte.ru
  Err(Connect(S,addr,SizeOf(TSockAddr)));
        PostData := '';
        PostData := 'email=' + email+'&'+'pass='+pass ;
        sendbuff := '';
Формируем запрос(POST), отправляем данные и получаем заголовок от серевера(записываем его в Memo1).
Код:
        //Формируем пост запрос
        sendbuff := 'POST /login.php HTTP/1.1'+ #13#10 +
                    'Host: vkontakte.ru'+ #13#10 +
                    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 AdCentriaIM/1.7 Firefox/2.0.0.14 WebMoney Advisor'+ #13#10 +
                    'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'+ #13#10 +
                    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'+ #13#10 +
                    'Accept-Encoding: gzip,deflate'+ #13#10 +
                    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+ #13#10 +
                    'Keep-Alive: 300'+ #13#10 +
                    'Connection: keep-alive'+ #13#10 +
                    'Referer: http://vkontakte.ru/index.php'+ #13#10 +
                    'Cookie: remixchk=5'+ #13#10 +
                    'Content-Type: application/x-www-form-urlencoded'+ #13#10 +
                    'Content-Length: ' + IntToStr(Length(PostData)) + #13#10#13#10 + PostData+#13#10+'Connection: close' + #13#10#13#10;
  send(s, sendbuff[1] , Length(sendbuff), 0);//Отправляем пост запрос из SENDBUFF
  application.ProcessMessages;
  recv(s,sBuff,5000,0);//получаем данные и записываем в sBuff
  application.ProcessMessages;
  Memo1.Text:=sBuff;
//-------------------------------------------------------
Закрываем сокет.
Код:
  Err(Shutdown(S,SD_Send));
  Err(closesocket(s));
//Для написания брутфорса этого было бы достаточно просто выдрали из Set-cookie id пользователя с помощью функции Redirect и все...
example
Код:
Edit3.Text:='http://vkontakte.ru'+redirect(sBuff);
Но для сбора инфы пользователя, дл отправки сообщений на стены, для приглашения в друзья и т.д. этого не достаточно...(сами разберетесь не сложно)
Поэтому просто покажу как попасть в свой профиль):

Формируем запрос(GET), отправляем данные и получаем заголовок от серевера(записываем его в Memo1).
Код:
  s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  Connect(S,addr,SizeOf(TSockAddr));
  sendbuff:='';
  application.ProcessMessages;
  Edit3.Text:='http://vkontakte.ru'+redirect(sBuff);
  //Формируем гет запрос
  sendbuff :='GET '+redirect(sBuff)+ ' HTTP/1.1'+ #13#10 +
                    'Host: vkontakte.ru'+ #13#10 +
                    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 AdCentriaIM/1.7 Firefox/2.0.0.14 WebMoney Advisor'+ #13#10 +
                    'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'+ #13#10 +
                    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'+ #13#10 +
                    'Accept-Encoding: gzip,deflate'+ #13#10 +
                    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+ #13#10 +
                    'Keep-Alive: 300'+ #13#10 +
                    'Connection: keep-alive'+ #13#10 +
                    'Referer: http://vkontakte.ru/index.php'+ #13#10 +
                    'Cookie: '+CopyCookie('remixchk',sBuff)+';'+' '+CopyCookie('remixmid',sBuff)+';'+' '+CopyCookie('remixemail',sBuff)+';'+' '+CopyCookie('remixpass',sBuff)+ #13#10+ #13#10;

  send(s, sendbuff[1] , Length(sendbuff), 0);//Отправляем пост запрос из SENDBUFF
  application.ProcessMessages;
  recv(s,sBuff,5000,0);//получаем данные и записываем в sBuff
  application.ProcessMessages;
  Memo1.Lines.Add('Мы обошли страницу 302'+#13#10+#13#10+sBuff);//Записываем в Memo1 полученные заголовки
//-------------------------------------------------------
[ВСЕ]


На статью может и не тянет, но просьбу некоторых форумчан я выполнил), да и для многих думаю будет полезным(для новичков)...
А так ждем пополнения этого топика, хорошими статейками, что бы многим было интересно почитать.
(здесь постим только статьи, обсуждения не здесь. За дальнейшее использование статьи, автор никакой ответственности не несет...)


Исходник и экзешник:
ЗДЕСЬ
Вложения
Тип файла: rar Исходники.rar (21.0 Кб, 112 просмотров)

Последний раз редактировалось De-visible; 12.11.2008 в 18:43..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ