- README, PROTOCOL, FINDINGS, endpoints, rapport et outils traduits en français - docs/DISCLOSURE.md : courriel prêt à envoyer à hello@boti.education (compte démo codé en dur, transmission en clair, logging de production) - extract_endpoints.py vérifié après traduction (100 points d'accès toujours extraits)
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# Constats de sécurité (com.botieducation.greenwood 2.4.14)
|
|
|
|
Éditeur : Boti Education (boti.education). Tous les constats proviennent de
|
|
l'analyse statique de l'APK distribué publiquement ; un seul appel de
|
|
connexion réel a servi à vérifier le protocole.
|
|
|
|
## F1. Identifiants codés en dur dans la build de production [GRAVE]
|
|
|
|
extracted/assets/public/1028.js (composant de la page de connexion) contient :
|
|
|
|
reconnectUser={id:12745, phone:"0649014703", password:"0649014703"}
|
|
|
|
Il s'agit d'un compte de démonstration oublié (reconnexion biométrique) avec
|
|
le numéro de téléphone comme mot de passe, compilé dans le bundle de
|
|
production. Quiconque possède l'APK connaît donc un identifiant et un mot de
|
|
passe. Statut réel de ce compte côté serveur : inconnu ; signalement à
|
|
l'éditeur recommandé.
|
|
|
|
## F2. Transmission des identifiants en clair [MOYEN]
|
|
|
|
POST /login envoie le mot de passe comme champ de formulaire en clair
|
|
(password=...). TLS protège le transport, mais l'identifiant reste en texte
|
|
clair dans tout journal intermédiaire qui enregistre les données de
|
|
formulaire ; même schéma dans forgot-password et change-password. Pas de
|
|
hachage côté client. Courant pour cette classe d'application, à signaler
|
|
quand même.
|
|
|
|
## F3. Journalisation verbeuse en production [FAIBLE]
|
|
|
|
L'ApiService journalise (console.log) les paramètres, les en-têtes et le
|
|
jeton d'accès dans la build release (visibles via adb logcat / débogage
|
|
WebView distant s'il est activé).
|
|
|
|
## F4. Pas d'épinglage de certificat, pas d'obfuscation [INFO]
|
|
|
|
Aucune configuration de pinning dans le bundle, aucune restriction
|
|
network_security_config au-delà des valeurs par défaut, bundle JS entièrement
|
|
lisible. Coût de la rétro-ingénierie : environ une heure.
|
|
|
|
## F5. Permissions larges mais plausibles [INFO]
|
|
|
|
CAMERA, localisation fine+grossière, micro (plugin enregistreur vocal),
|
|
stockage externe, FCM. Cas d'usage de la localisation : suivi des trajets
|
|
(points d'accès pick*) ; caméra pour l'envoi de photos. Aucun abus observé
|
|
(SMS, contacts, accessibilité).
|
|
|
|
## Notes de divulgation responsable
|
|
|
|
- Contact éditeur via boti.education ; l'école (Green Wood School,
|
|
tél 0520744100 d'après le message officiel d'accueil) peut relayer.
|
|
- F1 est le seul constat avec un potentiel de prise de contrôle de compte et
|
|
il est trivialement vérifiable par l'éditeur.
|
|
- Ne pas tester F1 contre le serveur réel au-delà de confirmer sa présence
|
|
dans le bundle : au-delà, cela devient un accès non autorisé.
|