Парсер+брутфорс (часть №1)

Часто замечаю на форумах просьбы дать инвайт/аккаунт к какому-нибудь ресурсу, причем многие ресурсы не обладают никакой защитой от перебора пароля. Скрипт для сбора логинов с ресурса (если это возможно) и последующего перебора пишется минут за 10. Непонятно что людям мешает взять и самостоятельно набрать аккаунтов к необходимому ресурсу, ибо в гугле встречается довольно много простых примеров использования потоков и выполнения запросов к серверу.

Парсер (в качестве примера для сайта torrents.ru, полный код парсера приведен в конце статьи):
Для начала разберемся откуда можно набрать список логинов.
Регистрируемся на трекере и смотрим как выглядит ссылка на профиль: http://torrents.ru/forum/profile.php?mode=viewprofile&u=XXXXXXX (где XXXXXXX некоторое число). Соответственно собирать будем, пролистывая список пользователей по цифровому идентификатору.

Теперь начнем писать сам парсер:

Объявим несколько переменных:

Создадим компонент браузера и прикрепим к нему контейнер кукисов:

На сайте torrents.ru для просмотра профиля необходимо авторизоваться на сайте, соответственно произведем авторизацию логином и паролем, которые мы создали раньше:

Url пост запроса и пары переменных можно посмотреть с помощью сниффера (например Wireshark) или специального плагина для браузера (например Tamper Data для Mozilla Firefox). Либо Вы можете открыть страницу с полями авторизации http://torrents.ru/forum/index.php и посмотреть в исходном коде необходимые пути и переменные, в случае с torrents.ru это:

Далее создадим потоки (создается количество потоков от 0 до значения переменной $threads, каждый поток выполняет функцию с именем Brut, в каждый поток передается переменная с его порядковым номером, которая понадобится позже):

Теперь код парсинга и сбора информации:

Несколько пояснений относительно кода выше:
имя файла вида $fid.log.txt нужно чтобы каждый поток писал в отдельный файл (судя по моим наблюдениям - меньше грузит систему, чем работа с одним общим файлом);
Регулярное выражение /Профиль пользователя: (.*?)<\/h1>/ получено исходя из страницы профиля пользователя, т.к. логин пользователя содержится между строками "Профиль пользователя: " и "

", то мы пишем выражение, забирающее весь текст между ними (обратный слеш перед /h1> необходим, чтобы компилятор не считал / закрывающим в регулярном выражении, строка (.*?) забирает любое количество произвольных символов от выражения слева от скобок до выражения справа) .

Исходники парсера: скачать

Парсер+брутфорс (часть №1): 23 комментария

  1. То что нада ;) ппц тока сеня сутра хател подумать как написать этот парсер а тут наткнулся на твой сайт %)Пасиба)

  2. прошу прощения, а скрипт ещё актуален? фактически нужен только парсер... ввожу рабочие лог и пасс, выдаёт ошибку: "Ошибка сегментирования".

  3. Не представляю как ты её ловишь, может ты там много потоков поставил конечно, а так не знаю.

  4. да нет... потоков больше 10 не ставил, хотя и при 1 та же фигня, ладна, буду разбираться, в любом случае спасибо! =)

  5. Хотел раскрутить сайт для пожертвования на Никольский храм.
    Но парсер не работает! Может торрент отказывается помогать пожертвованию или изменил вообще структуру работы. нужна ваша помощь Никольскому храму в строительстве. Кто сделает рекламу!?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *