PDA

Просмотр полной версии : Captcha. Loveplanet. Delphi


GhostOnline
27.03.2010, 16:32
http://loveplanet.ru/a-register/
Если отключить яваскрипт в браузере то зарегится не получиться скрипт будет отвечать что неверно введена капча!
А я получаю страницу с помошью обычного TIdHTTP.
Вопрос: как заставить сайт думать что я работаю с обычного браузера?

Fliplab
27.03.2010, 19:49
Тебе не легче делать просто пост запрос с готовыми данными + капча с сайта. В чём проблема? Я вот специально отключил Java и запросил ручками, всё прошло.

GhostOnline
27.03.2010, 20:08
Легче конечно, но так не получается - коды не подходят.
Я даже сохранял капчу на диск, ставил бряк, в отладчике вбивал нужное значение и отсылал - и фиг :(
Отключать скрипты кстати надо перед загрузкой страницы регистрации а не перед посылкой запроса.

Мне главное узнать какая именно функция там срабатывает, а потом переложить на дельфи или прикрутить скрипт-контрол не проблема

Fliplab
27.03.2010, 23:05
Правда? А я не знал...)
http://loveplanet.ru/a-register/?a=register&d=1&a_=45097&b_=19841&c_=614&somenums=
16452239011689798561&login=fliplab&password=vasya123&
password2=vasya123&email=fliplab%40yandex.ru&name=Vasya&bday=01&bmonth=04&byear=1986&bnotify0=on&
bnotify=on&pol=1&orient=1
&country=3159&region=4312&city=4400&pic=3843&conditions=1

Такой Пост Делаешь?

GhostOnline
27.03.2010, 23:08
Да, такой

Fliplab
27.03.2010, 23:10
А referer выставляешь со страницы регистрации?

GhostOnline
27.03.2010, 23:15
Referer: http://loveplanet.ru/a-register/

Фишка в том что и из браузера тоже не могу регнуться если отключаю яваскрипт

Fliplab
27.03.2010, 23:16
http://loveplanet.ru/a-register/?a=geojson&fs=[OPTION1]_[OPTION2] - пост запрос с рефером с регистрации. Получение всех странн, городов и т.п. [OPTION1] принимает такие значения: cities - регион, stations - город. [OPTION2] - значения из country.

Здесь запросы ошибочны, смотрим дальше правильные.

Fliplab
27.03.2010, 23:18
Там отправка идёт через Аякс. Час чёнить накопаю тебе))) Жди чуток

Deathdreams
27.03.2010, 23:21
ТС, в хрумере смогли , значит возможно

Fliplab
27.03.2010, 23:25
http://loveplanet.ru/?a=regcheck&f=login&v=[LOGIN] - получение информации о том зарегистрированн логин или нет. Вернёт 0 Пользователь с логином "[LOGIN]" уже существует. или 1 - если логин свободен.

http://loveplanet.ru/?a=regcheck&f=mail&v=[EMAIL] - проверка зарегистрированн ли такой e-mail в базе. Вернёт 0 Пользователь с e-mail "[EMAIL]" уже существует. или 1 - если такого e-mail в базе нет.

http://loveplanet.ru/?a=regcheck&f=name&v=[NAME] - проверка Имени. Если не верное, то вернёт 0 Поле "Имя" содержит номер телефона, или ICQ. - я ввёл цифры. Если правильное то вернёт 1 .

somenums - номер капчи

Кароче в конце страницы есть скрипт, он заменяет значения a_, b_, c_

<script language="JavaScript" type="text/javascript">
<!--
document.getElementById('a_').value = 21605 + 1*774; //22379
document.getElementById('b_').value = 10913 + 2*(774+3); //12467
document.getElementById('c_').value = 774 + 3 - 6; // 771
//-->
</script>

Не знаю каким макаром, но эти новые числа имеют плотную связь с капчей. Т.е. ты должен скрипт пропарсить и выполить выражения, далее передавать новые значения. Ещё по ходу, была замечена такая закономерность, что капча генерируется исходя из значения http://195.68.160.76/[SYMBOLS].gif.

Не забывай, куки отправлять. domhit = 1 и randomhit=цифирки

http://loveplanet.ru/?a=geo&fs=reg_[COUNTRU_NUMBER] - получает список областей и регионов, http://loveplanet.ru/?a=geo&fs=cities_[CITY_NUMBER] - получаем список городов.

На счёт определения включён ли JavaScript, есть такая гениальная вещь как <NOSCRIPT>Да у Вас же выключен JS... вебмастер в растеряности и не знает что вам показать</NOSCRIPT> :D Вот и там тоже всё просто проверка идёт как:
<noscript><div id="no_script" class="warn">
<b class="rnd_t"><b class="r1"></b><b class="r2"></b><b class="r3"></b><b class="r4"></b></b>
<table cellspacing=0 cellpadding=0 align=center><tr>
<td nowrap class="title">Внимание:</td>
<td width="100%">В Вашем браузере отключено выполнение сценариев.<br> Сайт может работать Неправильно.</td>
</tr></table>
<b class="rnd_b"><b class="r4"></b><b class="r3"></b><b class="r2"></b><b class="r1"></b></b>
</div></noscript>

GhostOnline
27.03.2010, 23:29
Я шлю эти запросы перед тем как регистрироваться

GhostOnline
27.03.2010, 23:48
Так, кажется понял. При "правильном" запросе отправляется на одну куку больше.
Мб яваскрипт записывает куки в браузер и таким образом определяется включенность оного?

Не знаю каким макаром, но эти новые числа имеют плотную связь с капчей. Т.е. ты должен скрипт пропарсить и выполить выражения, далее передавать новые значения. Ещё по ходу, была замечена такая закономерность, что капча генерируется исходя из значения http://195.68.160.76/[SYMBOLS].gif.

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

Все, получилось.

Fliplab
28.03.2010, 03:27
Попробуй, сформировать запрос, а потом его прогнать с разнвми данными не изменяя sembols, a_,b_,c_. У меня такое ощущение, что регистрация пройдёт во всех случаях)))Как то глупо капча регится)))

GhostOnline
28.03.2010, 04:20
Так не получится = )
Эти скрипты каждый раз разные:

document.getElementById('a_').value = 2147 + 1*546;
document.getElementById('b_').value = 18879 + 2*(546+3);
document.getElementById('c_').value = 546 + 3 - 6;

document.getElementById('a_').value = 34118 + 1*188;
document.getElementById('b_').value = 23414 + 2*(188+3);
document.getElementById('c_').value = 188 + 3 - 6;


Понял, попробую

Fliplab
28.03.2010, 04:24
ты не понял меня, с одной страницы собери эти данные а запрашивай по ним, но изменяя лишь регистрационные данные, эти не трогай.

RedFern.89
28.03.2010, 14:58
снифеером проверь)) может при загрузке страниццы нужные данные передаются))) или куки какие нить)) все надо тщательно проверить)

Fliplab
28.03.2010, 17:38
Всё проблема то решена