Скрипт Python, использующий практическую уязвимость в приложении E-Scooter Bolt, который позволяет использовать электронные скутеры без каких-либо зарядов
Bolt4Free-это сценарий Python, который использует практическую уязвимость в приложении Bolt E-Scooter, что позволяет вам использовать электронные скутеры без каких-либо зарядов. Сценарий использует факты, которые у Болта не имеет платы за разблокировку, поэтому можно запустить поездку и прекратить столько раз, сколько требуется, и что если продолжительность поездки находится в заданном периоде, зарядка не будет.
HTTP
-запросы и получить приведенную ниже информацию (подробнее о том, как создать Burpisuit на мобильном телефоне в соответствии с перехватами запросов с помощью Burp SuiteПрежде чем запустить эту программу, вам нужно иметь следующую информацию:
cookie
: значение cookie, необходимое для аутентификации.
authorization
: значение авторизации, необходимое для аутентификации (например, базовый kzq5mtc2nza4njc1mdq6muzcrjawmeytqkzrc00rjgwlue5nuitruzfodg4rjyzqzvb).
payment_instrument_id
: идентификатор платежного инструмента (например, adyen_paypal/6837466090316059).
user_agent
(необязательно): строка агента пользователя, которая будет использоваться в запросах. Значение по умолчанию - «Bolt/1097644413 CFNetWork/1390 Darwin/22.0.0».
Все эти значения могут быть получены из любого http
-запроса, исходящего из мобильного приложения Bolt
Чтобы запустить сценарий Bolt4Free, вам необходимо установить модуль запросов. Если у вас нет установки, вы можете установить его с помощью PIP:
pip install requests
После установки требований клон репозиторий:
git clone https://github.com/amstrdm/Bolt4Free.git
Перед запуском сценария обязательно измените следующие переменные в коде:
Cookie
: замените стоимостью заголовка Cookie
из запросов, перехваченных Burp Suite.Authorization
: замените стоимостью заголовка Authorization
из запросов, перехваченных Burp Suite.Payment_instrument_id
: замените значение параметра payment_instrument_id
из запросов, перехваченных Burp Suite. Кроме того, вы можете изменить переменную user_agent
, чтобы соответствовать желаемому пользовательскому агенту.
После этого вы можете выполнять сценарий обычно с помощью Python:
cd Bolt4Free
python3 bolt4free.py
Чтобы получить требуемые переменные ( Cookie
, Authorization
, Payment_instrument_id
), вы можете перенаправить запросы на пост из приложения для вашего телефона на компьютер, работающий с набором Burp. Это позволяет вам захватывать запросы и извлекать необходимые значения. Вы можете найти инструкции о том, как перенаправить запросы с телефона, чтобы Burp Suite здесь.
Обратите внимание, что этот процесс может потребовать технической экспертизы и предназначен только для образовательных целей.
Программа выполняет следующие шаги:
get_user_input()
: побуждает пользователя ввести идентификатор своего болтового скутера.create_and_start_order
: отправляет запрос сообщения в API Bolt для создания и запуска поездки. Возвращает ответ.extract_order_id
: извлекает «order_id» из ответа json.getactive1
: отправляет запрос в Bolt API, чтобы получить подробную информацию. Возвращает ответ.extract_getactive1_order_id
: извлечает «getactive1_id_value» из ответа json.getactive2
: отправляет второй запрос на пост в API Bolt, чтобы получить подробную информацию о поездке (этот запрос может быть ненужным и потенциально может быть удален).finish1
: отправляет запрос в Bolt API, чтобы завершить поездку (первый шаг).finish2
: Отправляет запрос POST в API Bolt, чтобы завершить поездку (второй шаг, подтверждает прекращение).Программа выполняет базовую обработку ошибок. Если какой -либо из запросов не удастся или вернет неожиданный ответ, будет напечатано сообщение об ошибке. Программа выйдет в случае ошибки.
Проект Bolt4Free предназначен для образовательных целей и является частью программы Bug Bounty. Создатель проекта не несет ответственности за какие -либо явные или незаконные действия, совершаемые с программой. Используйте этот сценарий ответственно и на свой страх и риск.
Обратите внимание, что в настоящее время нет «безопасного» способа выйти из программы, так как это потребует потока, что, вероятно, будет добавлено позже, поэтому при завершении программы важно проверить официальное приложение Bolt, если поездка будет прекращена как шансы Программа вырвалась рано из петли и поэтому не отправляла необходимые просьбы для прекращения POST
.
Примечание. Эта программа предоставляется как есть и может потребовать корректировки на основе любых изменений в API болта или процесса аутентификации.