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

Воскресенье, 18. Январь 2009
Раздел: Perl, автор:

Часто замечаю на форумах просьбы дать инвайт/аккаунт к какому-нибудь ресурсу, причем многие ресурсы не обладают никакой защитой от перебора пароля. Скрипт для сбора логинов с ресурса (если это возможно) и последующего перебора пишется минут за 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> необходим, чтобы компилятор не считал / закрывающим в регулярном выражении, строка (.*?) забирает любое количество произвольных символов от выражения слева от скобок до выражения справа) .

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

 Обсудить на форуме


Получать обновления на почту:     

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


  1. N0r8 :

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

    [Ответить]


  2. d3 :

    учишь юных кодеров быдлокоду? ))

    [Ответить]


  3. Tiger :

    исходник парсера не пашет... ((

    [Ответить]


  4. Kaimi :

    А ты валидный логин и пароль в соответствующей строке вписать не забыл?

    [Ответить]


  5. Tiger :

    нет, не забыл, сам проверь, может что то упущено

    [Ответить]


  6. Kaimi :

    Только что запустил, все нормально работает

    [Ответить]


  7. otstup :

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

    [Ответить]


  8. Kaimi :

    Это на какой ОС такое выдает? Под win с activeperl все нормально работает

    [Ответить]


  9. otstup :

    Ось - linux 2009.0 mandriva, ядро 2.6.27.14

    [Ответить]


  10. otstup :

    в windows xp с ActivePerl 5.10.0.1004, выдаёт критическую ошибку и закрывает приложение perl.exe

    [Ответить]


  11. Kaimi :

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

    [Ответить]


  12. otstup :

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

    [Ответить]


  13. asmi :

    Это актуально еще?

    [Ответить]


  14. Kaimi :

    Поидее да

    [Ответить]


  15. Stock Forum :

    I will be linking to your site great article.

    [Ответить]


  16. Irkasl :

    В рот мне килограмм печенья!

    [Ответить]


  17. Пожертвование :

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

    [Ответить]


  18. ntdrl666 :

    парсер все еще актуален?у меня не работает.
    текстовый файл нужно самому создавать?

    [Ответить]

    Kaimi:

    Фиг знает, вполне могло что-то измениться. Файл создавать не нужно

    [Ответить]


  19. RPG :

    Спустя 3 года не актуально еще?)

    [Ответить]

    Kaimi:

    Ещё? Скорее уже

    [Ответить]


  20. Alex :

    Так актуален урок или нет?

    [Ответить]

    Kaimi:

    С точки зрения работоспособности получившегося кода - нет

    [Ответить]


Оставьте ваш комментарий