jmueller17 / Aixada

Aixada helps self-managed consumption cooperatives to organize their flow of products, money, and information.
Other
33 stars 37 forks source link

Verify permission to install or upgrade #265

Closed narcisgarcia closed 4 years ago

narcisgarcia commented 4 years ago

install.php is completely open to anonymous visitors perfom Install or Update actions. At least some legitimation should trust user, such as typing DB password.

This is currently a security issue.

jorix commented 4 years ago

This is currently a security issue.

No:
Si en el esquema configurado en config.php no existen las tablas Aixada se muestra como instalación sin pedir identificación.
Pero... en caso contrario el usuario debe haberse identificado como de la comisión informática y solo se puede hacer una actualización.

narcisgarcia commented 4 years ago

Quien aloja el sitio web puede «preinstalar» Aixada dejando el fichero config.php arreglado para la base de datos, y entonces notificar al usuario/administrador para que se haga su personalización y uso. El usuario puede tardar días (pocos o muchos) en reaccionar.

Es entonces, mientras el usuario legítimo no reacciona a la preinstalación lista, que cualquier anónimo puede entrar y tomar el control del sitio web usando la credencial «admin» predeterminada.

jmueller17 commented 4 years ago

Ya, si tienes sugerencias / un parche?

jorix commented 4 years ago

Quien aloja el sitio web ... y tomar el control del sitio web...

Ya, ya... ¿pero para qué quiere alguien coger el control si no hay datos a husmear?

Lo que sí debe hacer cualquiera que instale Aixada (y otros muchos productos también), es cambiar la palabra de paso de usuario admin que se crea automáticamente al instalar

narcisgarcia commented 4 years ago

Ese cambio de contraseña se produce cuando el usuario por fín toma el control del web.

Lo más común en la toma de control de un sitio web ajeno es la inserción de enlaces publicitarios, envío de correo basura y colocación de páginas falsas (phishing).

narcisgarcia commented 4 years ago

No comprendo que no se percaten del agujero de seguridad, en el intervalo entre que el instalador coloca el CMS y que el usuario toma el control. Si son personas diferentes, pueden pasar días.

jorix commented 4 years ago

... y que el usuario toma el control ...

@narcisgarcia La verdad es que no le veo ningún agujero.

El install.php básicamente lanza procesos SQL, lo único que puede pasar es que alguien tome el control de admin que es solo es una fila de la tabla aixada_user (no confundir con FTP o CP, de esos Aixada no registra nada en config.php)
Pues bién, si alguien ha hecho un install para tomar el control esta persona solo logra entrar en el mantenimiento de datos de Aixada.
Así el usuario legítimo se va a encontrar dos cosas que le van a indicar claramente que alguien ha lanzado el install.php para acceder como admin:

  1. Que install.php le pide actualizar en vez de instalar, Ups!
  2. Que al ir a añadir miembros y UFs o bien se encontrarà que no puede entrar como admin admin, Ups! o que ya existen otros miembros a parte del admin, Ups!.

Así pues la hipotética toma de control tiene un recorrido muy corto. Y por añadidura, en mi experiencia en dar soporte a la puesta en marcha a varias coopes, nunca me he encontrado que la persona que copia los archivos en el servidor, el que configura el config.php y el que hace las altas de los primeros usuarios sea distinta. Y normalmente se trabaja sin aún haber echo pública la URL...
Bueno pues eso: NO VEO PROBLEMA