Создание Brute/Checker на браузерной эмуляции с помощью OpenBullet 2 + Puppeteer | ЧАСТЬ 1 | ВВЕДЕНИЕ И НАСТРОЙКА

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Автор: Leonid Filatov
Эксклюзивно для форума: xss.is
Часть: [1/2]
Спойлер: Мои другие статьи по OB2
Ссылка на первую статью: xss.is/threads/125338/
Ссылка на вторую статью: xss.is/threads/125492/
Ссылка на третью статью: xss.is/threads/125906/

Предисловие.

Приветствую, путник! В конце третьей статьи по работе с OpenBullet 2 я уже упоминал, что в следующих уроках мы перейдём от создания конфигов на основе POST/GET запросов к разработке скриптов с использованием эмуляции браузера. Что ж, этот момент настал!
Если вы ещё не ознакомились с моими предыдущими статьями, то ссылки находятся вверху. Настоятельно рекомендую их прочитать, чтобы вообще понимать, о чём здесь идёт речь.

В этой вводной статье начнем с небольшого погружения в теорию и настроим OpenBullet 2 для работы с одним из популярных фреймворков для автоматизации браузера Chrome - Puppeteer. А уже в следующих статьях мы перейдем к созданию нашего первого скрипта.

На данный момент, по моему мнению, для автоматизации браузеров без знания кода в 2024-2025 году лучше всего подходит BAS (Browser Automation Studio), так как он предоставляет больше возможностей для построения логики скрипта. В нём проще обрабатывать ошибки, и для BAS существует очень большое количество пользовательских модулей, которые значительно помогают при разработке. В OpenBullet 2 такого широкого спектра возможностей нет (ИМХО). Однако, поскольку я уже начал цикл статей именно по OpenBullet 2, считаю своим долгом его завершить!

Статьи по разработке скриптов с помощью BAS я планирую написать после того, как мы закончим с OpenBullet 2 (а это будет уже скоро), так как у вас уже будут базовые навыки в автоматизации.
О автоматизации антидетект-браузеров без навыков программирования с помощью BAS мы тоже поговорим, но, опять же, это будет темой отдельного цикла статей.

Для людей с опытом в программировании:
Напомню, что в этом цикле статей мы разбираем только NO-CODE решения, что идеально подходит для большинства новичков.
Но если вы уже «big boy» и владеете каким-либо языком программирования, например, Python, то лучше сразу переходите к изучению Playwright и используйте антидетект-библиотеки, которые можно найти здесь: GitHub - untidetect-tools в разделе "Anti-detect libs". Или же автоматизируйте работу антидетект-браузеров через их API с помощью Playwright.
Нажмите, чтобы раскрыть...

Этап 0. Термины и теория.

На этом этапе придётся добавить немного теории налить воды, чтобы у новичков сложилось общее понимание того, что мы собираемся делать и с помощью каких инструментов. Ведь я не хочу, чтобы вы просто бездумно нажимали на кнопки. Я хочу, чтобы вы понимали суть того, что мы делаем.

Браузерная автоматизация и HTTP-запросы: в чем разница?
  • Скрипты для автоматизации браузеров работают как полноценный браузер под руководством бота: они загружают страницы, выполняют JavaScript и могут взаимодействовать с динамическими элементами. По сути, такой скрипт «ходит» по сайтам, кликает на нужные элементы, вводит текст в поля - в общем, действует как настоящий пользователь. Для работы с элементами страницы при разработке скрипта мы будем использовать XPATH, с помощью которого мы указываем, на какой элемент ему нужно нажать или в какое поле ввести текст. Если вы читали мои предыдущие статьи, то уже знакомы с понятием XPATH.
  • А вот скрипты, использующие HTTP-запросы, работают иначе: они взаимодействуют с сервером напрямую, без загрузки страниц и выполнения JavaScript. Это означает, что их возможности ограничены, особенно когда нужно работать с динамическим контентом на современных веб-сайтах.
Браузерная автоматизация или HTTP-запросы: что выбрать?
  • У некоторых людей, наверняка, возник вопрос: что же лучше выбрать? На собственном опыте могу сказать так: если вам нужен максимально быстрый скрипт, который почти не расходует трафик (особенно если у вас прокси с оплатой за ГБ), и вы планируете проверять большие объемы данных (например, миллионы строк), тогда однозначно стоит рассмотреть софт на HTTP-запросах.
  • Но если вам пока не хватает опыта для создания скрипта на HTTP-запросах, например, если сайт защищен Akamai или требует много усилий для извлечения нужного токена, - тогда проще использовать автоматизацию браузера. Бывает, что нужно обработать около 5000 - 10000 строк из логов - вроде немного, но вручную это займет кучу времени, а написать HTTP-скрипт из-за защиты сайта может быть непросто. Именно здесь на помощь приходит автоматизация браузера: можно создать многопоточного бота, который будет заходить на целевой сайт и выполнять нужные действия - вход в аккаунт, сбор данных из личного кабинета, или же авторегистрацию аккаунтов и т.д.
  • Сначала всегда пробуйте реализовать задачу на основе HTTP запросов, но если быстро не получится и вы поймёте, что знаний не хватает, то переходите к использованию эмуляции. Как говорится, "не можешь сходить в туалет - не мучай попу".
Что такое Puppeteer и как он работает?
  • Puppeteer - это фреймворк для автоматизации браузера Google Chrome. Puppeteer взаимодействует с браузером напрямую через встроенный протокол Chrome DevTools Protocol. Это упрощает настройку и ускоряет процесс автоматизации. В отличие от фреймворка Selenium, который требует установки дополнительного драйвера ChromeDriver, который всегда нужно поддерживать в актуальной версии.
  • С помощью Puppeteer мы можем программно открывать страницы, кликать на элементы, вводить текст в поля и выполнять другие действия, словно мы сами работаем в браузере, но без необходимости глубоких знаний в программировании.

Этап 1. Настройка OpenBullet 2 для работы с Puppeteer.
С теорией вроде разобрались, теперь немного практики. Теперь давайте настроим наш OB2 для дальнейшей работы.

Раздел "RL Settings":
  • Качаем актуальную версию Google Chrome.​
  • Открываем OB2 и заходим в раздел "RL Settings".​
Спойлер: Скриншот
1730512304572.png

  • Листаем в самый низ и видим раздел "Puppeteer".​
  • Вводим путь до файла Chrome.exe (НЕ ДО ЯРЛЫКА). Если вы установили по стандартному пути, то там уже будет всё стоять по умолчанию.​
Спойлер: Скриншот
1730512236008.png

  • Жмём "Save" в самом низу.

Настройка конфига:
  • Создаём конфиг. (Если не знаете как, то что вы тут вообще забыли?! Читайте первые три статьи!)
Спойлер: Скриншот
1730512655715.png

  • Заходим в Configs -> Settings и выполняем все те настройки, которые мы делали во второй статье.
Спойлер: Скриншот
1730512756128.png

  • Но в этот раз у нас добавится ещё одна дополнительная настройка. Спускаемя в самый низ и видим пункт "Puppeteer".
Спойлер: Скриншот
1730513010505.png

  • Сейчас здесь установлены стандартные настройки, но давайте разберёмся, за что отвечает каждый пункт и выставим нужные нам значения.
Спойлер: Описание всех настроек
  • Quit the browser when the bot ends with one of these statuses - Определяет, при каких итогах работы бот должен закрыть браузер. Например, если задача выполнена успешно (SUCCESS), произошла ошибка (ERROR), бот получил блокировку (BAN) или завершился неудачей (FAIL). Это позволяет освобождать ресурсы и предотвращает появление "висящих процессов" браузера.
  • Headless mode - Запускает браузер в скрытом режиме без графического интерфейса (т.е. окно браузера не будет открываться, и вы не увидите, куда кликает скрипт и т.п.). Это ускоряет выполнение скрипта и экономит системные ресурсы. Однако некоторые сайты могут распознавать режим headless и блокировать доступ, поэтому его иногда нужно отключать, а также лучше отключать этот режим во время разработки скрипта.
  • Load only document and script - Загружает только HTML-документ и JavaScript страницы, игнорируя такие ресурсы, как изображения, стили (CSS), шрифты и видео. Это ускоряет загрузку страницы и уменьшает сетевую нагрузку, что полезно, если вам нужны только данные, а не оформление страницы.
  • Dismiss dialogs - Автоматически закрывает всплывающие окна и диалоги на сайте (например, запросы подтверждения или сообщения). Это полезно, если такие окна мешают автоматизации, но если скрипт должен с ними взаимодействовать, лучше оставить эту опцию выключенной.
  • Command line arguments - Google Chrome поддерживает специальные команды (флаги), которые позволяют гибко настраивать его поведение под нужды автоматизации. В поле Command line arguments можно вводить такие команды, чтобы, например, отключить уведомления, выключить песочницу для работы на VPS, оптимизировать производительность или игнорировать ошибки сертификатов. Например:
--disable-notifications - отключает всплывающие уведомления на сайте.
--window-size=1920,1080 - устанавливает размер окна браузера на 1920x1080 пикселей.
Нажмите, чтобы раскрыть...
Ознакомиться со списком ВСЕХ спец. комманд можете здесь - peter.sh/experiments/chromium-command-line-switches/
Нажмите, чтобы раскрыть...
  • Ignore HTTPS errors - Позволяет игнорировать ошибки безопасности, связанные с HTTPS-сертификатами на сайте. Полезно для работы с сайтами, у которых нет действительных SSL сертификатов.
  • Для OpenBullet 2 существуют два варианта настроек Puppeteer - для запуска на стационарном ПК и на VPS. Давайте разберём для каждой ситуации:
Спойлер: Настройки для стационарного ПК
1730679943735.png


  1. Переносим FAIL, BAN, ERROR в зелёную колонку. (Жмем ПКМ). (SUCCESS не переносим в зелёную колонку, потому что этот вариант разивития событий мы будем обрабатывать в ручную. То есть браузер будет закрываться только после того, как скрипт спарсил информацию которая нам нужна)
  2. На время разработки скрипта выключаем "Headless mode".
Спойлер: Настройки для VPS
1730679983483.png


  1. Переносим FAIL, BAN, ERROR в зелёную колонку. (Жмем ПКМ). (SUCCESS не переносим в зелёную колонку, потому что этот вариант разивития событий мы будем обрабатывать в ручную. То есть браузер будет закрываться только после того, как скрипт спарсил информацию которая нам нужна)
  2. На время разработки скрипта выключаем "Headless mode".
  3. В поле "Command line arguments" вводим дополнительно "--no-sandbox". - Что делает эта команда можете найти в интернете, но по своему опыту могу сказать, что без неё на VPS мы получим вот такую ошибку при запуске браузера:
1730556357996.png

  • После того, как применили все настройки, то возвращаемся обратно в "Stacker", где мы сейчас проверим работает ли Puppeteer.
Спойлер: Скриншот
1730556686869.png


Этап 3. Проверка работоспособности Puppeteer.
Теперь давайте сделаем простенький скрипт из трёх кубиков, который будет:
  1. Запускать экземпляр браузера Chrome.​
  2. Очищать все куки. - Рекомендуется добавлять этот блок в начале каждого скрипта, это поможет экономить память и снизит вероятность возникновения конфликтов.​
  3. Открывать главную страницу XSS.IS.​
Добавляем открытие экземпляра браузера:
  • Нажимаем на плюсик, заходим в раздел "Puppeteer".
Спойлер: Скриншот
1730557434490.png

  • Заходим в раздел "Browser".
Спойлер: Скриншот
1730557835608.png

  • Выбираем действие "Open Browser"
Спойлер: Скриншот
1730557893697.png


Добавляем очистку куки:
  • Нажимаем на плюсик, заходим в раздел "Puppeteer".
Спойлер: Скриншот
1730557434490.png

  • Заходим в раздел "Page".
Спойлер: Скриншот
1730557592552.png

  • Выбираем действие "Clear Cookies".
Спойлер: Скриншот
1730557672870.png


Открываем страницу XSS.IS:
  • Нажимаем на плюсик, заходим в раздел "Puppeteer".
Спойлер: Скриншот
1730557434490.png

  • Заходим в раздел "Page".
Спойлер: Скриншот
1730557592552.png

  • Выбираем действие "Navigate to".
Спойлер: Скриншот
1730558201971.png

  • В настройках действия "Navigate to" в поле URL вводим нужную нам ссылку, а именно: "https://xss.is"
Спойлер: Скриншот
1730558488035.png


Тестируем скрипт:
  • Нажимаем кнопку "Start" и видим, что скрипт открыл целевой сайт:
1730558794467.png



На этом настройка завершена!
Подводим итоги.
Сегодня мы настроили OpenBullet 2 для работы с Puppeteer и освоили базовые шаги по автоматизации браузера.
Я бы рекомендовал вам просто зайти и посмотреть какие ещё возможности предлагает Puppeteer в OB2, потыкайте, попробуйте составить свой простенький скрипт, там очень много функций.
В следующей статье мы будем уже делать полноценный скрипт, который будет вводить логин и пароль, авторизоваться на сайте и т.д, но целью будет выступать не наш любимый форум :).
 
Сверху Снизу