---
title: "Writeup Explotando un API endpoint usando documentación — PortSwigger Web Security Academy"
machine: "Explotando un API endpoint usando documentación"
platform: "PortSwigger Web Security Academy"
difficulty: "Fácil"
operating_system: ["Linux"]
tags: ["web"]
author: "juanluismm520"
author_url: "https://writeups.es/u/juanluismm520"
source: "https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520"
license: "CC BY-SA 4.0"
published: "2026-05-24T16:36:54.881889+00:00"
updated: "2026-08-14T18:15:44.659871+00:00"
words: 152
reading_minutes: 1
---# Explotando un API endpoint usando documentación — PortSwigger Web Security Academy

# Explotando un API endpoint usando documentación

> Plataforma: **PortSwigger Web Security Academy** | Dificultad: **Fácil** |

---

## 📝 Documentación
Documentación ofrecida por PortSwigger:
https://portswigger.net/web-security/api-testing 

## 📝 Resumen

Máquina de tipo **facil** en la que nos dan una cuenta (wiener:peter) y debemos explotar una API con el objetivo de borrar el usuario carlos. 

## 🔍 Realización

![Imagen](https://heqkdeabwizixwftdumf.supabase.co/storage/v1/object/public/writeup-images/318f5db5-2777-441d-bccc-080db9bfff1e/27e4baa4-61af-4a9f-965e-b8be88bd8e7a.webp)

Vemos una tienda normal. Puesto que nos hemos leído la documentación sabemos que problablemente tengamos la documentación de la api en uno de estos enlaces:

- /api/swagger/v1
- /api/swagger
- /api
- /swagger/index.html
- /openapi.json

O bien podemos usar el intruder para hacer fuerza bruta o simplemente probamos ya que estamos en un lab sencillo.

`/api` observamos
![Imagen](https://heqkdeabwizixwftdumf.supabase.co/storage/v1/object/public/writeup-images/318f5db5-2777-441d-bccc-080db9bfff1e/ec6f233d-f74e-4d39-8eb7-83db4b64c321.webp)


Con cualquier herramienta que haga peticiones podemos eliminar el usuario carlos, ya que como vemos el método DELETE seguramente esté abierto. 

```http
DELETE /api/user/carlos 
```

Pero nos devuelve `Unauthorized`


Sigo investigando y probablemente sea un bug de la página, con simplemente actualizar (Control F5) y volver a hacerlo nos devuelve

```http
HTTP/2 200 OK
Content-Type: application/json; charset=utf-8
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Length: 25

{"status":"User deleted"}
```

Solucionando el lab
---

> Writeup de **juanluismm520** publicado en [writeups.es](https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520).
> Si citas este contenido, enlaza a la fuente original.
