- 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)
47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
# 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=<token> 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.
|