Мар 27
2009curl + form. мастеркласс 2! Регистрация на АОЛ’е.
Рубрики: (phpdude Curl, Каптча коды, Полезные штуки) Автор: phpdude 27-03-2009
Теги : aol, captcha, curl, forms
добрый. надеюсь мой друг инсест непротив такой публикации ))
смотрим … нам понадобилось несколько штучек аккаунтов на аоле
руками? нунах.
http://helldude.ru/inner/code/46uDEo тут код index.php
http://helldude.ru/inner/code/CM6ocJ тут captcha.php соответственно.
все делалось на быструю руку такчто интерфейс тут не к чему
$curl = new Curl();
$content = $curl->init(«https://new.aol.com/freeaolweb»)->serverfriendly()->exec();
$form = new Form($content);
$fields = $form->setFormHtml(0)->getFormData();
тут инициализировали сессию (cookie sesion) + отпарсили форму на наличие скрытых идентификаторов внутри формы
дальше …
$fields['{actionForm.firstName}'] = $name = Random::name($female = rand(0,1));
$fields['{actionForm.lastName}'] = $sname = Random::surname();
$fields['{actionForm.desiredSN}'] = $name.$sname;
$fields['{actionForm.password}'] = $fields['{actionForm.verifyPassword}'] = $fields['{actionForm.acctSecuityAnswer}'] = $fields['{actionForm.verifyAcctSecurityAnswer}'] = Random::password(8,0,rand(1,4),0);
$fields['wlw-select_key:{actionForm.acctSecurityQuestion}'] = «The last 4 digits of your Social Security Number?»;
$fields['wlw-select_key:{actionForm.gender}'] = rand(0,1) ? «Male» : «Female»;
$fields['wlw-select_key:{actionForm.dobDay}'] = rand(0,31);
$fields['wlw-select_key:{actionForm.dobMonth}'] = Random::month(1);
$fields['{actionForm.dobYear}'] = rand(1960,1986);
$fields['{actionForm.zipCode}'] = rand(10000,99999);
$fields['submitButton'] = «Submit»;
$fields['{actionForm.dayPhone}'] = «+».rand(10000000000,99999999999);
$fields['wlw-select_key:{actionForm.acctSecurityQuestion}OldValue'] = «true»;
$fields['wlw-select_key:{actionForm.dobDay}OldValue'] = «true»;
$fields['wlw-select_key:{actionForm.dobMonth}OldValue'] = «true»;
$fields['wlw-select_key:{actionForm.gender}OldValue'] = «true»;
$fields['{actionForm.hasToolbar}'] = «false»;
$fields['{actionForm.isIE}'] = «false»;
просто заполнили все поля
$_SESSION['curl'] = $curl;
$_SESSION['fields'] = $fields;
echo «<form method=\»post\»><input type=\»text\» name=\»captcha\» /> <input type=\»submit\» value=\»register\» /><br/> <img src=\»captcha.php?».rand(0,1000000).«\» /></form>»;
}
запомнили значения полей и обхект курл в сессию чтобы использовать на последующих страницах + вывели форму с вводом капчи и самой капчей. так как в хтмл коде страницы аола у капчи не было идентификатора – очевидно что этот идентификатор хранится в сесссии на их сервере, поэтому капчу нам надо выполнять из под нашего объекта curl, чтобы в его соссии появился идентификатор показанной капчи
дальше просто скачаем капчу и покажем ее. фор тут нужен изза блядской настройки нескольких серверов в аоле, потому что их бекен сервера генерят 500ую ошибку … долбоебы одним словом.
такс … капча, родимая
простенько и со вкусом вписываем этот код в файлик captcha.php и видим капчу
<?php
require_once ‘init.php’;
$curl = $_SESSION['curl'];
//header(«Content-type: image/jpeg»);
$content = $curl->init(«https://new.aol.com/freeaolweb/WordVerImage?».time())->serverfriendly()->exec();
for($i=0;$i<5 && $curl->curlinfo->http_code==500; $i++)
{
$content = $curl->init(«https://new.aol.com/freeaolweb/WordVerImage?».time())->serverfriendly()->exec();
}
echo $content;
$_SESSION['curl'] = $curl;
такс … скачали картинку с помощью курла из сессии и сохранили обновленный курл в сессию на всякий. для любителей & скажу что этот символ я использую крайне редко.
далее дело техники
$curl = $_SESSION['curl'];
$fields = $_SESSION['fields'];
$fields['{actionForm.wordVerify}'] = $_POST['captcha'];
$content = $curl->init(«https://new.aol.com/freeaolweb/subflows/FreeMemberRegistration/FreeAolRegistrationAction.do»)->serverfriendly()->setopt(«post»,$fields)->exec();
достали курл и поля формы и отпостовали все это куда требуется
получили хтмл код, дальше тупая логика
if(strpos($content,«Congratulations, you are now registered for AOL!»))
{
die(«registered! {$fields['{actionForm.desiredSN}']}@aol.com : {$fields['{actionForm.password}']}»);
}
header(«Location: .»);
и все
регалка аккаунтов на аоле готова
52 строки в индексе + 10 строк в капча файле. а вам слабо?
тут лив демо http://helldude.ru/trash/regaol
в следующей статье расскажу про регистрацию на яху ![]()
Всея ПЫХА
adw0rd
Мавр
ГО
Irinax
тема интересна но нихуя не ясно
Заебато! А где init.php?
а там ничего существенного