Авторегер Yahoo
19 повідомлень
#15 років тому
Буду краток 
Столкнулся со следующей проблемой при разработке авторегера почтовых акаунтов Yahoo. Если анкета заполнена автоматом - сервер всегда возвращает ошибку что кепча введена не верно. Даже если использовать TWebBrowser, поля заполняются автоматом, всё сверяю и жму вручную "Зарегистрироваться" ... та же ошибка

Посылку серверу сравнивал множество раз, идентична той что шлёт броузер "вручную". Ктото сталкивался ?
450 повідомлень
#15 років тому
Цитата ("xneo"):Посылку серверу сравнивал множество раз, идентична той что шлёт броузер "вручную". Ктото сталкивался ?
Куки, реферер, юзер-агент и т.д. не забываете отдавать?
778 повідомлень
#15 років тому
Попробуйте в TWebBrowser заполнить все поля вручную и нажать "Зарегистрироваться", думаю заработает. А проблема будет в ява-скриптах, которые скорее всего делают проверку какого либо поля при вводе, или смене фокуса.Ну это как вариант...
3195 повідомлень
#15 років тому
Проблема в камере вашего ноутбука. Злобные админы яху видят ваш рабочий стол, видят, что это не вы, а робот, и быстро-быстро жмут эскейп при нажатии вами кнопки зарегистрироваться.Это тоже как вариант...
19 повідомлень
#15 років тому
Цитата:Куки, реферер, юзер-агент и т.д. не забываете отдавать?
Конечно.
Цитата:
Попробуйте в TWebBrowser заполнить все поля вручную и нажать "Зарегистрироваться", думаю заработает. А проблема будет в ява-скриптах, которые скорее всего делают проверку какого либо поля при вводе, или смене фокуса.
Так тоже делал. Если заполняю вручную - работает. Если поля заполняются программно а потом я вручную жму кнопку отправить - капча не верна.
JavaScript отслеживает смену фокуса полей и побитово инкрементирует значение одного из полей. Это поле я тоже подставляю программно, точно так как броузер - результата ноль.
Пробовал и такой вариант: поля заполняются программно, а потом я вручную прохожу по каждому полю и корректирую его... тоже "капча не верна"

С временем тоже игрался, пробовал отсылать ответ и пораньше и попозже...
Вобщем уже сам не понимаю как такое может быть


1036 повідомлень
#15 років тому
Количество отправляемых полей совпадает?А TWebBrowser вообще не кошерно использовать, в многопоточном приложении проблем не оберетесь.
19 повідомлень
#15 років тому
Цитата ("Sivis"):Количество отправляемых полей совпадает?
Да. И куков тоже.
При вводе анкеты он в стиле AJAX запроса на ходу запрашивает не занят ли выбранный логин... пробовал этот запрос точно так же емулировать учитывая куки... результата не принесло.
1036 повідомлень
#15 років тому
Цитата ("xneo"):Цитата (Sivis):Количество отправляемых полей совпадает?
Да. И куков тоже.
Значения всех полей известны и понятны? Вы до конца понимаете какое значение как формируется?
19 повідомлень
#15 років тому
Цитата ("Sivis"):Значения всех полей известны и понятны? Вы до конца понимаете какое значение как формируется?
Из тех что изменяются перед отправкой - да.
Часть полей не изменяются и отсылаются с такими же значениями которые загрузились с сервера.
Пробовал даже сам буфер отправляемый поймать снифером и вручную разложить на поля а потом сравнить со своими... ошибок не вижу.
19 повідомлень
3195 повідомлень
#15 років тому
Если поля идентичны, можно предположить, что может быть какой скрипт в процессе ручного нажатия клавиш грузится и что-то отсылает по тихому на сервер. Внизу страницы регистрации какой-то скрипт непонятный - видели?
19 повідомлень
#15 років тому
Уже раз 300 снифером просматривал все запросы.Блокировал все подозрительные запросы типа странных невидимых картинок с километровыми URL, 20x40px размером в 43 байта. Понятно что это не картинка, но при блокировке всего лишнего... ручное заполнение всё равно проходит

Я уже думал может они на JS используют сокеты (не знаю есть ли у него такая возможность) и отсылают чтото не в HTTP изза чего я не вижу запросов... но вроде ничего такого в JS-коде не нашёл.
Тот скрипт что внизу крутит чтото с "хешами" какимито и запрашивает картинку в стиле:
https//us.bc.yahoo.com/b?P=_HX3IESO8Ukr.B60S0oFegCnX4Zij0tLDKwAB4bC&T=14j8qb0cl%2fX%3d1263209644%2fE%3d150001817%2fR%3dregst%2fK%3d5%2fV%3d3.1%2fW%3dJ%2fY%3dYAHOO%2fF%3d4276458031%2fH%3dc2VjdXJlPXRydWU-%2fQ%3d-1%2fS%3d1%2fJ%3d846F9345
Вызов блокировал... ничего не изменилось.
Куки в процессе работы до отсылки не изменяются никак... поэтому их вообще не трогал. Они загружаются на главной странице и отсылаются неизменно с постом.
19 повідомлень
#15 років тому
Ещё момент...1. Загружается форма.
2. Отключаю инет вообще.
3. Заполняю неспеша форму и жду секунд 15-30.
4. Включаю инет. В снифере никаких активных запросов...
5. Жму "Зарегистрироваться" - удачно.

Отсюда можно сделать вывод что промежуточные запросы не играют никакой роли.
Куки не изменяются.
Откуда же он знает ?

Если кому интерестно брошу приложение с TWebBrowser с автозаполнением.

65 повідомлень
19 повідомлень
#15 років тому

Цитата ("Tkachenko"):
Перед регистрацией по сабмиту идеть запрос на
посилання
в нем есть заголовок X-Requested-With: XMLHttpRequest
у вас он есть?
Есть.
Я использую TWebBrowser (типа встроенный InternetExplorer компонент). Это практически идеальная копия броузера. Все запросы идентичны.
Заметил сегодня один момент... если посмотреть на таймлайн (рисунок) то видно что после инициализации пост-запроса стартует как бы внутри (по времени) ещё один запрос (XMLHttpRequest) и завершается раньше самого поста. Хотя информации практически никакой не несёт и при автоматом заполненной форме этот запрос тоже присутствует...заголовки и данные вроде идентичны.
65 повідомлень
#15 років тому
Да, о нем я и говорю. Функции этого запроса - серверная проверка коректности введенных данных. Цитата ("xneo"):
.заголовки и данные вроде идентичны.
Вроде или идентичны?

132 повідомлення
#15 років тому
- cdata & cadata & t изменяются при помощи js незаметно, причем не весь текст, а только пару букв- капча передается в другой кодировке от пакета
есть автореггер на питоне, работает отлично.
19 повідомлень
#15 років тому
Сделал регистрацию в броузере. В снифере сравнил загруженные и отосланные поля cdata, cadata и t. Идентичны...В скриптах .js упоминается cdata только в одном месте - при перезагрузке капчи, и то там просто присваивается значение принятое с сервера:
var respObj = eval("(" + o.responseText + ")");
...
var fld = Dom.get("cdata");
...
fld.value = respObj.CaptchaTest;
Поле кепчи cword имеет только английские символы и цифры, один байт на символ... какая там ещё может быть кодировка?