Reconocimiento de API
Para comenzar las pruebas en una API, lo primero es obtener la mayor cantidad de información posible (como en cualquier auditoría) y así descubrir su superficie de ataque.
Se deben identificar los endpoints de la API. Estos son las rutas donde una API recibe las peticiones o solicitudes sobre un recurso específico en el servidor. Por ejemplo, observa la siguiente petición HTTP:
GET /api/books HTTP/1.1
Host: example.com
En el ejemplo anterior el endpoint seria /api/books. Esto da como resultado una interacción con la API para recuperar una lista de libros de una biblioteca. Otro endpoint de la API podría ser /api/book/mystery, el cual recuperaría una lista de libros de misterio.
Una vez que se obtienen los endpoints, se debe determinar cómo interactuar con ellos. Esto permite construir peticiones HTTP válidas para la API. Por ejemplo, es necesario buscar información sobre lo siguiente:
- Datos de entrada: Los datos que procesa la API, incluyendo los parámetros obligatorios y opcionales.
- Tipos de solicitudes: Los métodos HTTP (como GET, POST, PUT, DELETE) y los formatos multimedia (JSON, XML) admitidos.
- Seguridad y restricciones: Mecanismos de autenticación y límites de velocidad (rate limiting) implementados.