книги хакеры / журнал хакер / 126_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
i |
|
|
F |
|
|
|
|
|
|
|
i |
|
||
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
t |
|
||||
P |
D |
|
|
|
|
|
|
|
|
o |
P |
D |
|
|
|
|
|
|
|
|
o |
||
|
|
|
|
NOW! |
r |
|
|
|
|
NOW! |
r |
||||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w |
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
w Click |
|
|
|
|
|
|
|
m |
>> coding |
|
|
|
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
o |
w Click |
|
|
|
|
|
|
o |
|||||||||
|
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
|
.c |
|
|
. |
|
|
|
|
|
|
.c |
|
||||
|
|
p |
df |
|
|
|
|
e |
|
|
|
p |
df |
|
|
|
|
e |
|
||||
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
g |
|
|
|
||||||
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
КОДФУНКЦИИ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АВТОРИЗАЦИИLOGIN_COOK() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ДИАЛОГБРАУЗЕРАИСЕРВЕРА |
КЛАССА«AFORS» |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ВПРОЦЕССЕАВТОРИЗАЦИИ |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
.......................... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3) Даже если пользователи входят в |
public $auth_cook; // определяем пабликпеременную |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
состав друзей, имеет место определен- |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ный лимит в количестве отправленных |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
сообщений. Он довольно большой и, если |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
все-таки превышен, то пользователю |
$ch=curl_init(); //инициализируем сеанс CURL |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
предлагается пройти тест captcha. |
// Настраиваем сеанс CURL |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
4) Два последовательных личных сообще- |
// Подробнее смотрите в исходниках |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ния должны быть различны хотя бы на |
// задаем целевой скрипт |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
один символ. Это ограничение всерьез |
curl_setopt($ch, CURLOPT_URL, |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
воспринимать не стоит. |
'http://vkontakte.ru/login.php'); |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
5) При авторизации после пяти неверных |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
попыток предстоит пройти тест captcha. |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Это не дает организовать самостоятель- |
// включаем получение заголовков |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ную автоматическую проверку аккаунтов |
// определяем тип браузера для маскировки |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
на валидность. |
// установим требование возвращения ответа сервера |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Самыми желанными для спам-атак в со- |
// установим реферер |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
циальных сетях считаются именно лично |
// заносим маскировочные cookies |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
адресованные или публичные настенные |
// определяем заголовки (не все обязательны) |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
сообщения. Мол, пользователь прочтет |
// разрешаем отправку POST-данных |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
их с высокой степенью вероятности, и это |
// составляем и отправляем запрос |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
действительно так. Комментарии, при- |
// заносим пришедший ответ в переменную $answer |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
глашения в группы/предложения дружбы |
// закрываем сессию CURL |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
— все это тоже активно используется |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
народными спамерами, но по эффектив- |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ности они ниже. |
// проверяем пришедший код на наявность |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Отсюда следует, что наиболее эффектив- |
// текста 'captcha_sid' |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ным подходом будет рассылка сообщений |
if (strpos($answer, ‘captcha_sid’)<>0) |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
«по друзьям», где серьезных ограничений |
{ |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
как таковых нет. Это значит, что спамеры, |
preg_match_all('#sid":"(.*?)"#', $answer, $sid_id); |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
добыв пароли и логины от аккаунтов поль- |
// возвращаем номер-id теста captcha |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
зователей (а их количество исчисляется |
return "sid_cap:".$sid_id[1][0]; |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
сотнями и тысячами!), авторизируются |
} |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
под каждым и организовывают рассылку |
else |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
сообщений по друзьям аккаунта-жертвы. |
{ |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Исходя из того, что таких жертв сотни |
// проверяем пришедший код на наявность |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
или тысячи, а у каждой — довольно много |
// текста 'failed' |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
друзей, количество которых все время |
if (strpos($answer, 'failed')<>0) |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
возрастает, — это влечет за собой просто |
return "failed"; // возвращаем 'failed' |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
огромные массы сообщений и самые |
else |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
негативные последствия от спама! Опять |
{ |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
же, возникает вопрос: каким образом |
// парсим и заносим в чистом виде cookies |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
спамеры добывают эти самые аккаунты и |
// в переменную $this->auth_cook |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
добывают их массово — сотнями тысяч? |
preg_match_all('#Set-cookie: (.*;)#UiS', |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Не могу не вспомнить слова великого |
$answer,$answer); |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Альберта Эйнштейна: «Только две вещи |
for($t=0;$t<count($answer[0]);$t++) |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
бесконечны: вселенная и человеческая |
$auth_cook.=$answer[0][$t]; |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
глупость, и я не уверен по поводу пер- |
preg_match('#remixmid=(.*?);#', $auth_cook, $myid); |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
вой». И это так :). Способы добычи аккаун- |
$this->auth_cook=str_replace("Set-Cookie:", |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
тов классические — фишинговые сайты, |
"", $auth_cook); |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
трояны, черви. |
// возвращаем id залогиненного пользователя |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Однако хакерско-спамерские аспекты |
return $myid[1]; |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
массовых рассылок нас с тобой инте- |
} |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
ресуют мало. Мы с тобой — социально- |
} |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
активные личности, у нас много друзей, а |
.......................... |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
XÀÊÅÐ 06 /126/ 09 |
103 |
|
|
|
|
|
|
|
|
|