{"url":"https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520","machine":{"name":"Explotando un API endpoint usando documentación","slug":"explotando-un-api-endpoint-usando-documentacion","platform":"PortSwigger Web Security Academy","platform_slug":"portswigger","difficulty":"facil","difficulty_label":"Fácil","operating_system":["Linux"],"tags":["web"],"original_url":"https://portswigger.net/web-security/api-testing/lab-exploiting-api-endpoint-using-documentation","all_writeups":"https://writeups.es/maquinas/portswigger/explotando-un-api-endpoint-usando-documentacion"},"author":{"nickname":"juanluismm520","url":"https://writeups.es/u/juanluismm520","bio":null},"summary":null,"outline":[{"level":1,"title":"Explotando un API endpoint usando documentación","anchor":"https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520#explotando-un-api-endpoint-usando-documentacion"},{"level":2,"title":"📝 Documentación","anchor":"https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520#documentacion"},{"level":2,"title":"📝 Resumen","anchor":"https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520#resumen"},{"level":2,"title":"🔍 Realización","anchor":"https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520#realizacion"}],"cves":[],"code_languages":["http"],"stats":{"words":152,"reading_minutes":1,"votes":1},"content_markdown":"# Explotando un API endpoint usando documentación\n\n> Plataforma: **PortSwigger Web Security Academy** | Dificultad: **Fácil** |\n\n---\n\n## 📝 Documentación\nDocumentación ofrecida por PortSwigger:\nhttps://portswigger.net/web-security/api-testing \n\n## 📝 Resumen\n\nMá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. \n\n## 🔍 Realización\n\n![Imagen](https://heqkdeabwizixwftdumf.supabase.co/storage/v1/object/public/writeup-images/318f5db5-2777-441d-bccc-080db9bfff1e/27e4baa4-61af-4a9f-965e-b8be88bd8e7a.webp)\n\nVemos 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:\n\n- /api/swagger/v1\n- /api/swagger\n- /api\n- /swagger/index.html\n- /openapi.json\n\nO bien podemos usar el intruder para hacer fuerza bruta o simplemente probamos ya que estamos en un lab sencillo.\n\n`/api` observamos\n![Imagen](https://heqkdeabwizixwftdumf.supabase.co/storage/v1/object/public/writeup-images/318f5db5-2777-441d-bccc-080db9bfff1e/ec6f233d-f74e-4d39-8eb7-83db4b64c321.webp)\n\n\nCon cualquier herramienta que haga peticiones podemos eliminar el usuario carlos, ya que como vemos el método DELETE seguramente esté abierto. \n\n```http\nDELETE /api/user/carlos \n```\n\nPero nos devuelve `Unauthorized`\n\n\nSigo investigando y probablemente sea un bug de la página, con simplemente actualizar (Control F5) y volver a hacerlo nos devuelve\n\n```http\nHTTP/2 200 OK\nContent-Type: application/json; charset=utf-8\nX-Content-Type-Options: nosniff\nX-Frame-Options: SAMEORIGIN\nContent-Length: 25\n\n{\"status\":\"User deleted\"}\n```\n\nSolucionando el lab","published_at":"2026-05-24T16:36:54.881889+00:00","updated_at":"2026-08-14T18:15:44.659871+00:00","license":"CC BY-SA 4.0","attribution":"Writeup de juanluismm520 publicado en writeups.es — https://writeups.es/writeups/portswigger/explotando-un-api-endpoint-usando-documentacion/juanluismm520"}