[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторегистратор
Doszhan
Добрый день

Практикуюсь с CURL. Написал авторегистратор для bobrdobr.ru (правда, использовал код одного блогера для moemesto.ru)

Написал код для forum.igra3k.ru . Не работает.

<?php
function
prepare(){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://forum.igra3k.ru/ucp.php?mode=register");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

$result = curl_exec($ch);

preg_match('#<input type="hidden" name="form_token" value="([a-f0-9]+)" />#i', $result, $form_token1);

$post1 = array(
'form_token' => $form_token1[1],
'agreed' => 'Я согласен с этими условиями',
);


curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post1);

$result = curl_exec($ch);

preg_match('#<input type="hidden" name="confirm_id" id="confirm_id" value="([a-f0-9]+)" />#i', $result, $confirm_id);
preg_match('#<input type="hidden" name="form_token" value="([a-f0-9]+)" />#i', $result, $form_token2);
$img = "http://forum.igra3k.ru/ucp.php?mode=confirm&confirm_id=" . $confirm_id[1] . "&type=1";

curl_setopt($ch, CURLOPT_URL, $img);
curl_setopt($ch, CURLOPT_POST, 0);

$result = curl_exec($ch);
curl_close ($ch);

file_put_contents('captcha.jpg', $result);

return array ($confirm_id[1], $form_token2[1]);
}

list($confirm_id, $form_token2) = prepare();

function reg($login, $email, $password, $captcha, $confirm_id, $form_token2){

$post = array(
'agreed' => true,
'change_lang' => '0',
'confirm_code' => $capthca,
'confirm_id' => $confirm_id,
'confirm_id' => $confirm_id,
'email' => $email,
'email_confirm' => $email,
'form_token' => $form_token2,
'lang' => 'ru',
'new_password' => $password,
'password_confirm' => $password,
'tz' => '0',
'username' => $login,
'submit' => 'Отправить',
);


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://forum.igra3k.ru/ucp.php?mode=register");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

$result = curl_exec($ch);

curl_close ($ch);

print_r($result);

}

$login = 'ant155if1r223';
$email = 'an0t92123@yopmail.com';
$password = 'q8w1erty';

if(!empty($_GET['captcha']))
reg($login, $email, $password, $_GET['captcha'], $_GET['key'], $_GET['key2']);
else
{
$form = '<h2>Введите код с картинки</h2>
<img src="captcha.jpg">
<form>
<input type="hidden" name="key" value="'
.$confirm_id.'">
<input type="hidden" name="key2" value="'
.$form_token2.'">
<input type="text" name="captcha">
<input type="submit" name="Go!"></form>'
;
echo $form;
}
?>


Буду признателен, если кто-нибудь укажет на ошибки.



Спустя 4 дня, 6 часов, 16 минут, 36 секунд (9.12.2010 - 18:44) Doszhan написал(а):
Никто не знает?

Спустя 20 минут, 21 секунда (9.12.2010 - 19:05) twin написал(а):
Нет, ни кто не знает. Что бы знать, нужно:
1. Запустить код у себя
2. Проанализировать ошибки интерпретатора (если есть, ты не представил)
3. Сделать трассировку скрипта.
4. Сделать систему логирования и отследить ответы.
5. Проанализировать полученную информацию
6. Сделать выводы и см п.1.

Ты реально считаешь, что кому то интересно залогиниться на каком то bobrdobr.ru?

Смотри по порядку, выкладывай результаты, будем думать. Конек-горбунёк в отпуске.

Спустя 1 час, 22 минуты, 5 секунд (9.12.2010 - 20:27) Doszhan написал(а):
twin
Да причем тут интересно/неинтересно кому-то.

Написал ведь - практикуюсь.

Спасибо за список действии при отладке, но у меня проблема в другом. Ошибок никаких нету, мне не понятна логика защиты от авторегистрации в форумах.

Ниже следует мои наблюдения на одном конкретном примере. Очистил cookies браузера и начал делать обычные действия при регистрации на форуме, заодно сохраняя исходные коды страниц, наблюдая за всеми данными передаваемыми методом POST.

В первый раз при заходе в форум в ссылку регистрации добавлен параметр sid, но я это проигнорировал (ибо не используется он нигде) и сразу зашел на страницу:
http://forum.igra3k.ru/ucp.php?mode=register

Отправил POST данные:
agreed Я согласен с этими условиями
change_lang
creation_time 1291485176
form_token 9aad7d3bfe5d9c7e260555b07b35d0b95cc4a2d9

Редиректит на следующую страницу регистрации.

Отправил POST данные:
agreed true
change_lang 0
confirm_code 2XQU
confirm_id 18a5e5e096e6687aca2b577750d82a5e
confirm_id 18a5e5e096e6687aca2b577750d82a5e
creation_time 1291485192
email email
email_confirm email
form_token 40da8c456e9bc8db64ff5a7b57a65f361a60a7c8
lang ru
new_password pass
password_confirm pass
submit Отправить
tz 0
username login

Выводит "Ошибка регистрации" и "Неправильный код каптчи", то есть я отправляю не те ключевые данные и сохраняю у себя не ту картинку каптчи.

Как видите form_token изменился - связующего звена между страницами нету. Все эти form_token и confirm_id лежат в исходных кодах страниц. В скрипте я их "узнавал" и передавал через POST. Не отправлял только creation_time. Критично ли это и что означает этот пункт?

Какие данные я отправляю ошибочно?

Спустя 7 минут, 30 секунд (9.12.2010 - 20:34) inpost написал(а):
Капчу. Как раз для таких как ты, которые курлом спамят сайты регулярно, и создают капчи.
От тебя защитились капчей.

Спустя 20 минут, 16 секунд (9.12.2010 - 20:55) twin написал(а):
Ну вот. Теперь уже понятно. Если так важен этот ресурс - пиши парсер капчи. Это долго и муторно. Почему говорю пиши - глумлюсь. Я вот от таких посягательств и не такие защиты строю. Думайте, раз охота нахаляву.

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

Спустя 36 минут, 39 секунд (9.12.2010 - 21:31) Doszhan написал(а):
Кроме "оришки" есть еще вариант - может я студент, который выделил некоторое время для изучения нового для себя, купивший книгу по PHP от Котерова, успев разочароваться пока писал программку для себя и поняв еще раз, что не может быть книги и для новичка и для профессионала, открывший ветку в форуме "Народ, что желаешь на халяву, только нету гарантии что получишь smile.gif " и получивший в предложения написать авторегистратор для форумов.

Что и требовалось для меня получил подтверждение моим предположениям, что такую популярную платформу для форума phpBB не получится так просто обмануть.

Спасибо за отклик

Спустя 39 минут, 15 секунд (9.12.2010 - 22:10) twin написал(а):
Почитай тут, по крайней мере я смогу ответить на любой вопрос по этому
" чебнику"
Только там нет халявы, труд и голова все же потребуются.

Спустя 15 минут, 28 секунд (9.12.2010 - 22:26) inpost написал(а):
Doszhan
Если ты хочешь попрактиковаться с курлом, то таскай данные из почтовых агентов, к примеру из mail.ru или gmail.com , там без капчи

Спустя 8 часов, 57 минут, 47 секунд (10.12.2010 - 07:24) Doszhan написал(а):
twin, Да, я смотрел. По-доброму отложил на потом, когда буду готов делать сайты.
PS: Я и не говорил, что гонюсь за халявой.

inpost, в общем, никто даже и не смотрел код biggrin.gif . В следующий раз буду расписывать подробнее.

Я ведь каптчу ввожу руками. Дело в том, что либо я к себе загружаю не ту каптчу, либо отправляю не теми form_roken и condirm_id

Спустя 4 часа, 58 минут, 43 секунды (10.12.2010 - 12:22) ИНСИ написал(а):
Цитата
Я вот от таких посягательств и не такие защиты строю

twin можешь по подробнее? Небольшой список сделать?

Спустя 7 минут, 34 секунды (10.12.2010 - 12:30) twin написал(а):
Попозже будет большой урок на ирбисе по безопасности. Там поделюсь секретами. Правда урок будет платным, но очень недорогим.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.