# greenwood-school-re Ingénierie inverse statique de l'application parents Greenwood School (com.botieducation.greenwood), la « horrible application mobile » qui est en réalité un wrapper web Capacitor de l'éditeur Boti Education (boti.education). Version analysée : 2.4.14 (versionCode 24140), XAPK via APKPure. Empreinte XAPK sha256 : f46aa8b126f8f8856ea15e10ed12fa259d02e383f8921b0645139521b7820e69 ## Contenu - docs/PROTOCOL.md, le protocole API complet : URL de base, authentification, enveloppe des requêtes, notifications push, URLs médias, particularités - docs/endpoints.md, les 100 points d'accès de l'app avec méthodes get/post et chunk source - docs/FINDINGS.md, constats de sécurité (oui, y compris le compte de démo codé en dur) - docs/DISCLOSURE.md, courriel de divulgation responsable prêt à envoyer - tools/extract_endpoints.py, régénère la table des points d'accès depuis les chunks décompilés - tools/boti_login.sh, connexion + mise en cache de la clé de session (identifiants dans ~/.config/boti.ini, jamais dans le dépôt) - results/report.md, notes d'analyse originales ## En résumé - L'application est une SPA Ionic/Angular dans une coquille Capacitor 5. Toute la logique est en JavaScript. - Backend : https://boti.education/p/greenwood/botiapi/ (chemin par école sur un backend unique partagé entre tous les établissements Boti) - Auth : POST login (téléphone + mot de passe en clair) -> keyToken (40 hex) utilisé comme key= sur chaque appel. Jetons JWT access/refresh supportés mais généralement vides pour les comptes parents. - La version livrée contient un compte de démonstration codé en dur dans le composant de la page de connexion. - Protocole vérifié en direct avec un seul appel de connexion ; aucune autre requête n'a été faite au serveur de l'école. ## Pas d'identifiants ici Le dépôt ne contient aucune donnée personnelle du titulaire du compte. La seule paire téléphone/mot de passe citée dans docs/FINDINGS.md est le contenu de démo livré par l'éditeur, cité comme preuve de vulnérabilité ; il figure dans chaque copie publique de l'APK. Les identifiants réels vont dans ~/.config/boti.ini (chmod 600) sur la machine qui exécute les outils, jamais dans ce dépôt.