Tiredful, Una API Vulnerable

Tiredful API

*Tiredful API*

Cómo hemos dicho muchas veces, sin hacer no se aprende. Leer es un hábito que todos debemos desarrollar y cultivar, pero cuando hablamos de tecnología, si sólo lees y no pruebas, practicas, rompes, etc, no aprenderás mucho.

Ya hemos publicado algunas entradas (vulnerable, pentesting, etc) con aplicaciones vulnerables de forma intencionada para el beneficio del que desea practicar y aprender. En este caso os hablamos sobre otra de estas aplicaciones, aunque esta vez es una REST API.

Conocer como funcionan las APIs REST es fundamental, sobre todo para desarrolladores y auditores de seguridad, cualquiera que sea el color de tu equipo. Hay quien dice que las APIs son los nuevos blogs para las empresas, y que prácticamente cualquier empresa debería tener su propia API.

Tiredful-API es una REST API intencionadamente vulnerable. Está escrita en Python con Django y actualmente contiene las siguientes vulnerabilidades:

  • Information Disclosure.
  • Insecure Direct Object Reference.
  • Access Control.
  • Throttling.
  • SQL Injection (SQLite).
  • Cross Site Scripting.

El código está disponible en Github, junto con las instrucciones de cómo ejecutarla.

Pero si no te encuentras cómodo con Python y Django, o simplemente no quieres instalar ninguna de las dependencias que necesitas, puedes usar una imagen Docker que he creado y que puedes ejecutar con un simple comando:

docker container run -it --rm -p 8000:8000 tuxotron/tiredful-api

Evidentemente necesitas tener Docker instalado. Si tu usuario no es parte del grupo de Docker o no tienes privilegios elevados, necesitarás prefijar el comando anterior con sudo.

sudo docker container run -it --rm -p 8000:8000 tuxotron/tiredful-api

Una vez hayas ejecutado dicho comando, puedes acceder a la aplicación yendo a http://localhost:8000.

Si te atascas y necesitas un poco de ayuda, puedes acceder a las soluciones, pero inténtalo y no te des por vencido muy rápido.