
Aplicación Python vulnerable para aprender desarrollo seguro
Vulpy es una aplicación web desarrollada en Python / Flask / SQLite que tiene dos caras.
BUENO: Intenta codificar con las mejores prácticas de desarrollo seguro en mente.
MALO: Intenta codificar como (posiblemente) tú. :p
Está desarrollado como laboratorio para los siguientes cursos:
Desarrollo Seguro de Securetia (https://www.securetia.com/cursos.html) Desarrollo Seguro de EducaciónIT (https://www.educacionit.com/curso-de-desarrollo-seguro)
Pero puedes usarlo como quieras (Licencia MIT)
La versión "BUENA" (aún no terminada) cumplirá con OWASP ASVS:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project
Esto permitirá aprender cómo desarrollar código Python siguiendo las mejores prácticas de seguridad.
::
git clone https://github.com/fportantier/vulpy
cd vulpy
pip3 install --user -r requirements.txt
Algunas de las vulnerabilidades presentes en la versión "MALA":
Nota: La versión "BUENA" (aún no terminada) se supone que no tiene vulnerabilidades, pero soy un ser humano, así que...
Tanto la versión "MALA" como la "BUENA" requieren una inicialización de la base de datos.
Esto se hace con el script "db_init.py" dentro de cada uno de los directorios (bad y good).
Cada versión tiene sus propios archivos sqlite para los usuarios y las publicaciones.
La ejecución del script es, por ejemplo:
::
cd bad ./db_init.py
Después de la inicialización de la base de datos, se crean tres usuarios:
::
Usuario Contraseña
admin SuperSecret elliot 123123123 tim 12345678
Puedes iniciar sesión con cualquier usuario, la aplicación no tiene un sistema de permisos, por lo que los tres tienen los mismos permisos.