Un script de Python que explota una vulnerabilidad práctica en la aplicación Bolt E-scooter que permite usar los e-scooters sin ningún cargo
Bolt4free es un script de Python que explota una vulnerabilidad práctica en la aplicación Bolt E-scooter, lo que le permite usar los e-scooters sin ninguna carga. El guión aprovecha los hechos de que Bolt no tiene una tarifa de desbloqueo, por lo que un viaje puede iniciarse y terminar tantas veces como desee y que si la duración de un viaje está bajo un marco de tiempo determinado, no habrá cargo.
HTTP
y obtener la información a continuación (más sobre cómo configurar BurPsuit en dispositivos móviles bajo solicitudes de interceptación con BURP SuiteAntes de ejecutar este programa, debe tener la siguiente información:
cookie
: el valor de la cookie requerido para la autenticación.
authorization
: El valor de autorización requerido para la autenticación (por ejemplo, KZQ5MTC2NZA4NJC1MDQ6MUZCRJAWMEYTQKQZRC00RJGWLUE5NUTRUZFODG4RJYZQZVB).
payment_instrument_id
: la ID del instrumento de pago (por ejemplo, adyen_paypal/6837466090316059).
user_agent
(opcional): la cadena del agente de usuario se utilizará en las solicitudes. El valor predeterminado es "Bolt/109764413 CFNETWork/1390 Darwin/22.0.0".
Todos estos valores se pueden obtener de cualquier solicitud http
que salga desde la aplicación Bolt Mobile
Para ejecutar el script Bolt4Free, debe instalar el módulo de solicitudes. Si no lo tiene instalado, puede instalarlo con PIP:
pip install requests
Después de que se instalen los requisitos, clon, el repositorio:
git clone https://github.com/amstrdm/Bolt4Free.git
Antes de ejecutar el script, asegúrese de modificar las siguientes variables en el código:
Cookie
: reemplace con el valor del encabezado Cookie
de las solicitudes interceptadas por Burp Suite.Authorization
: Reemplace con el valor del encabezado Authorization
de las solicitudes interceptadas por BURP Suite.Payment_instrument_id
: Reemplace con el valor del parámetro payment_instrument_id
de las solicitudes interceptadas por BURP Suite. Además, puede cambiar la variable user_agent
para que coincida con su agente de usuario deseado.
Después de eso, puede ejecutar el script normalmente con Python:
cd Bolt4Free
python3 bolt4free.py
Para obtener las variables requeridas ( Cookie
, Authorization
, Payment_instrument_id
), puede redirigir las solicitudes de publicación de la aplicación Bolt de su teléfono a una computadora que ejecuta BURP Suite. Esto le permite capturar las solicitudes y extraer los valores necesarios. Puede encontrar instrucciones sobre cómo redirigir las solicitudes de un teléfono a Burp Suite aquí.
Tenga en cuenta que este proceso puede requerir experiencia técnica y está destinado solo a fines educativos.
El programa sigue los siguientes pasos:
get_user_input()
: pide al usuario que ingrese la ID de su scooter de perno.create_and_start_order
: envía una solicitud de publicación a la API de Bolt para crear y comenzar el viaje. Devuelve la respuesta.extract_order_id
: extrae el "orden_id" de la respuesta JSON.getactive1
: envía una solicitud de publicación a la API BOLT para obtener los detalles activos de conducción. Devuelve la respuesta.extract_getactive1_order_id
: extrae el "getactive1_id_value" de la respuesta JSON.getactive2
: envía una segunda solicitud de publicación a la API de Bolt para obtener los detalles activos de conducción (esta solicitud puede ser innecesaria y potencialmente puede eliminarse).finish1
: envía una solicitud de publicación a la API Bolt para terminar el viaje (primer paso).finish2
: envía una solicitud de publicación a la API de Bolt para terminar el viaje (segundo paso, confirma la terminación).El programa realiza el manejo básico de errores. Si alguna de las solicitudes falla o devuelve una respuesta inesperada, se imprimirá un mensaje de error. El programa saldrá en caso de un error.
El proyecto Bolt4Free es para fines educativos y es parte de un programa de recompensa de errores. El creador del proyecto no es responsable de ningún acto explícito o ilegal realizado con el programa. Use este script de manera responsable y con su propio riesgo.
Tenga en cuenta que actualmente no existe una forma "segura" de salir del programa, ya que eso requeriría subprocesos que probablemente se agregarán más adelante, por lo tanto, al finalizar el programa, es importante verificar la aplicación de perno oficial si el viaje se terminó como posibilidades ¿El programa salió temprano del circuito y, por lo tanto, no envió las solicitudes POST
necesarias para terminar el viaje?
NOTA: Este programa se proporciona AS-IS y puede requerir ajustes basados en cualquier cambio en la API de Bolt o el proceso de autenticación.