Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2012, 17:49   #1
admin22
Пользователь
 
Регистрация: 27.09.2011
Сообщений: 26
По умолчанию Авторизироваться на сайте

Здравствуйте господа программисты. Столкнулся с проблемой авторизации на сайте wf.mail.ru

Сниффером посмотрел все что уходит на сервер:




Программно пытаюсь отправить тоже самое, что бы авторизироваться, но ничего не выходит.
Код:
procedure TForm2.sButton1Click(Sender: TObject);
var
    i,l:Integer;
    email,pass,s1,s2:string;
  Data:tStringlist;

begin
try
idHTTP1:=TIdHTTP.Create(nil);

idhttp1.AllowCookies := true;
idhttp1.HandleRedirects := true;

idhttp1.Request.Host:=('wf.mail.ru');
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0';
Idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
Idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
Idhttp1.Request.AcceptEncoding:='gzip, deflate';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Referer:='http://wf.mail.ru/' ;
idhttp1.Request.ContentType:='application/x-www-form-urlencoded';


for l:=0 to smemo2.lines.Count-1 do  
for i:=0 to smemo3.Lines.Count-1 do begin
email:=trim(copy(smemo2.Lines[i],1,pos('.ru',smemo2.Lines[i])+3));
//email:= StringReplace(email, '@','%40',[rfReplaceAll, rfIgnoreCase]);
pass:=trim(copy(smemo3.Lines[i],1,pos(' ',smemo3.Lines[i])-1));
data:=TStringList.Create;
data.add('name='+email+'&pass='+pass+'&op='+'&form_build_id=form-a68ad3bbe965349c215946128d2169a4'+'&form_id=user_login_block');
s1:=idhttp1.post ('http://wf.mail.ru/node',data);
s2:=idhttp1.Get('http://wf.mail.ru/user');
if pos ('Юзербары',s2)>0 then
begin
smemo1.lines.add ('Логин '+email+' '+'Пароль '+pass);
 end;
end;

finally
data.free;
email:='';
pass:='';

end;
end;
После попытки авторизации редирректит обратно на страницу авторизации. Куки менеджер подключен.
Надеюсь, что вы мне поможете

Последний раз редактировалось Stilet; 01.12.2012 в 18:33.
admin22 вне форума Ответить с цитированием
Старый 01.12.2012, 18:37   #2
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

1) Делается так
data.add('name='+email);
data.add('pass='+pass);
data.add('op=');
data.add('form_build_id=form-a68ad3bbe965349c215946128d2169a4);
data.add('form_id=user_login_block' );
2) form-a68ad3bbe965349c215946128d2169a4 скорей всего динамическое значение, т.е меняется. По этому в начале делаем GET, парсим это значение , отправляем POST

И http://programmersforum.ru/showthread.php?t=38803
bakanaev вне форума Ответить с цитированием
Старый 01.12.2012, 18:40   #3
admin22
Пользователь
 
Регистрация: 27.09.2011
Сообщений: 26
По умолчанию

1) Посмотрите на скрины вверху, там данные отправляются одной строкой (POSTDATA)
2) Это значение статично, не меняется

Последний раз редактировалось admin22; 01.12.2012 в 18:44.
admin22 вне форума Ответить с цитированием
Старый 01.12.2012, 18:48   #4
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от admin22 Посмотреть сообщение
1) Посмотрите на скрины вверху, там данные отправляются одной строкой (POSTDATA)
А то. Я Вам дал совет, если считаете что вы правы, флаг вам в руки
bakanaev вне форума Ответить с цитированием
Старый 01.12.2012, 18:53   #5
admin22
Пользователь
 
Регистрация: 27.09.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от bakanaev Посмотреть сообщение
А то. Я Вам дал совет, если считаете что вы правы, флаг вам в руки
Вам я больше доверяю
admin22 вне форума Ответить с цитированием
Старый 01.12.2012, 18:58   #6
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от admin22 Посмотреть сообщение
Вам я больше доверяю
Ну так попробуйте, о результате отпишите )
bakanaev вне форума Ответить с цитированием
Старый 02.12.2012, 06:55   #7
admin22
Пользователь
 
Регистрация: 27.09.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от bakanaev Посмотреть сообщение
Ну так попробуйте, о результате отпишите )
Спасибо за совет, все получилось, только он почему то, не хочет теперь перебирать логины и пароли. В поле с логинами пишу 2 логина и один пароль. Один пароль подходит к логину, а другой нет. В итоге в валид ничего не попадает.


Код вот такой получился:
Код:
var
    i,l:Integer;
    email,pass,s1,s2:string;
  Data:tStringlist;

begin
try
idHTTP1:=TIdHTTP.Create(nil);

idhttp1.AllowCookies := true;
idhttp1.HandleRedirects := true;
idhttp1.Request.Host:=('wf.mail.ru');
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0';
Idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
Idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
Idhttp1.Request.AcceptEncoding:='gzip, deflate';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.Referer:='http://wf.mail.ru/' ;
idhttp1.Request.ContentType:='application/x-www-form-urlencoded';


for l:=0 to smemo2.lines.Count-1 do   //мемо с логинами
for i:=0 to smemo3.Lines.Count-1 do begin // мемо с паролями
email:=trim(copy(smemo2.Lines[i],1,pos('.ru',smemo2.Lines[i])+3));
pass:=trim(copy(smemo3.Lines[i],1,pos(' ',smemo3.Lines[i])-1));
data:=TStringList.Create;
data.add('name='+email);
data.add('pass='+pass);
data.add('op=');
data.add('form_build_id=form-a68ad3bbe965349c215946128d2169a4');
data.add('form_id=user_login_block' );
s1:=idhttp1.post ('http://wf.mail.ru/node',data);
if pos ('Юзербары',s1)>0 then
begin
smemo1.lines.add ('Логин '+email+' '+'Пароль '+pass);
 end;
end;

finally
data.free;
email:='';
pass:='';

end;
end;

Последний раз редактировалось admin22; 02.12.2012 в 08:51.
admin22 вне форума Ответить с цитированием
Старый 02.12.2012, 18:58   #8
admin22
Пользователь
 
Регистрация: 27.09.2011
Сообщений: 26
По умолчанию

Проблема актуальна
admin22 вне форума Ответить с цитированием
Старый 25.03.2013, 12:03   #9
SmoK777
Пользователь
 
Регистрация: 20.03.2012
Сообщений: 27
По умолчанию

';}}
</script>
<noscript>Для просмотра этой страницы необходима поддержка JavaScript и Cookie


вот теперь что возвращает. как быть?
SmoK777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регистрация на сайте с вк Vitaliy> PHP 7 23.08.2012 22:07
Рейтинг на сайте ilshat09 PHP 0 26.01.2012 15:11
Не логинится на сайте RIO Работа с сетью в Delphi 8 15.11.2010 19:56
IdHTTP авторизироваться на сайте Alter Работа с сетью в Delphi 9 16.12.2009 14:57