Saltar al contenido
OPS // KITitspentest.sh

R-GMA

gmapsapiscanner

Comprueba una API key de Google Maps descubierta o filtrada contra las numerosas APIs de Maps Platform para ver cuáles están habilitadas y son explotables por abuso de facturación o exposición de datos.

Sitio oficialVolver al catálogo

RESUMEN

gmapsapiscanner (github.com/ozguralp/gmapsapiscanner, de Ozgur Alp) prueba una API key de Google Maps dada contra las cerca de 20 APIs distintas que forman parte de Google Maps Platform — Directions, Places, Geocoding, Static Maps, Street View, Distance Matrix y más — y reporta cuáles de ellas puede invocar realmente la key. Esto importa porque una sola key filtrada rara vez se traduce limpiamente en "expuesta" o "segura": cada API tiene su propio flag de habilitación, su propia cuota y su propio potencial de abuso.

Una key distribuida sin restricciones en una app móvil o en el JavaScript del lado cliente de un sitio web es un hallazgo habitual, y el impacto práctico va desde el abuso directo de facturación — inflar la factura de Google Cloud del propietario de la key golpeando una API de pago — hasta la exposición de datos, cuando una API habilitada como Places Details o Geocoding filtra más información de la que la aplicación pretendía exponer a los usuarios finales.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Confirmar qué APIs de Maps Platform puede invocar una key encontrada en el código decompilado o el tráfico de red de una app móvil.

  • 02

    Comprobar si una API key de Maps descubierta en el JavaScript del lado cliente de un sitio web carece de restricciones de referrer HTTP o de API.

  • 03

    Demostrar el potencial de abuso de facturación de una key sin restricciones como evidencia para un hallazgo de bug bounty o evaluación.

  • 04

    Evaluar si una API habilitada (por ejemplo, Places Details) filtra más datos de los previstos en el caso de uso de la aplicación.

PRIMEROS PASOS

Tras encontrar una API key de Google Maps embebida en una app móvil, sitio web o repositorio de código, para comprobar cuáles de las numerosas APIs de Maps Platform puede realmente invocar.

  1. Clona el repositorio e instala las dependencias de Python desde requirements.txt / pyproject.toml.
  2. Confirma que la key descubierta se encontró dentro del alcance (app/sitio/repo del propio cliente) y no por medios no autorizados.
  3. Ejecuta el scanner con `--api-key` apuntando a la key descubierta.
  4. Revisa qué APIs respondieron con éxito y contrasta cada una con su potencial de abuso de facturación o exposición de datos.
python3 — bash
python3 maps_api_scanner.py --api-key AIzaSy...leaked-key --no-jsapi

ANTES DE USARLA

Qué revisar antes de lanzarla

Una llamada exitosa contra una API de pago consume la cuota y facturación reales de Google Cloud del propietario de la key — mantén el volumen de pruebas al mínimo y prueba cada API solo cuando haga falta confirmarla.

Trata un resultado positivo como punto de partida para confirmar explotabilidad, no como prueba de impacto — acompáñalo de un escenario de abuso concreto (aumento de costos, filtración de datos) antes de reportarlo.

Escanea solo keys encontradas dentro del alcance autorizado del engagement; escanear una key obtenida de un tercero ajeno queda fuera de los límites.

SIGUE EXPLORANDO

Ver toda la fase →