Files
greenwood-school-re/docs/FINDINGS.md
T
Omarchy-Big-PC 358027bf27 Document full static RE of Greenwood School (Boti Education) app 2.4.14
- PROTOCOL.md: base URL, login/session auth, request envelope, push, media
- endpoints.md: 100 app endpoints extracted from the Capacitor JS bundle
- FINDINGS.md: security findings incl. hardcoded dev account in build
- tools: endpoint extractor + credential-safe login script
- results: original analysis report (IDs redacted)
2026-09-01 15:13:28 +01:00

50 lines
2.1 KiB
Markdown

# Security findings (com.botieducation.greenwood 2.4.14)
Vendor: Boti Education (boti.education). All findings from static analysis of
the publicly distributed APK; one live login call used to verify the protocol.
## F1. Hardcoded credentials in the shipped production build [HIGH]
extracted/assets/public/1028.js (login page component) contains:
this.reconnectUser = {id:12745, phone:"0649014703", password:"0649014703"}
This is a leftover dev/demo biometric-reconnect account with phone number as
password, compiled into the production bundle. Anyone with the APK has a
username and password. Status of this account on the server unknown; report to
vendor recommended.
## F2. Plaintext credential transmission [MEDIUM]
POST /login sends the password as a plaintext form field (password=...).
TLS protects the transport, but the credential sits in plaintext in any
intermediary logging form data, and the same pattern is reused by
forgot-password / change-password. No client-side hashing. Common for this
class of app, still worth flagging.
## F3. Verbose production logging [LOW]
The ApiService logs request payloads, headers and the access token to
console.log in the release build (visible via adb logcat / remote WebView
debugging if enabled).
## F4. No certificate pinning, no obfuscation [INFO]
No pinning config in the bundle, no network_security_config restrictions
beyond defaults, JS bundle fully readable. RE cost: about an hour.
## F5. Broad but plausible permissions [INFO]
CAMERA, fine+coarse LOCATION, microphone (voice recorder plugin), external
storage, FCM. Location use case is bus tracking (pick endpoints); camera for
photo upload. No SMS, contacts, or accessibility permission abuse observed.
## Responsible disclosure notes
- Vendor contact is via boti.education; the school itself (Green Wood School,
tel 0520744100 per the official welcome message) can escalate.
- F1 is the only finding with direct account-takeover potential and is
trivially verifiable by the vendor.
- Do not test F1 against the live server beyond confirming it exists in the
bundle; that crosses into unauthorized access.