Writeup: Existential Loading Bar
Indledende Observationer
Jeg tilgik websitet og blev mødt af en admin-login side med en loadingbar der aldrig kom videre.
Wappalyzer viste at backend kørte:
Flask 3.1.5
Python 3.12.12
Der var ingen yderligere hints i UI’et, så jeg fortsatte med at undersøge koden.
Recon / Kortlægning
Jeg åbnede koden via View Source.
I bunden af HTML’en fandt jeg følgende JavaScript:
| |
Her lå admin credentials hardcoded direkte i klient-side kode.
Kommentaren indrømmede endda eksplicit:
“view source to see – don’t do this in production.”
Dette indikerede, at applikationen stolede på frontend som en form for “hemmelighed”, hvilket aldrig er et sikkerhedsboundary.
Analyse
Sårbarheden var:
Client-Side Credential Exposure
Admin-brugernavn og password var:
| |
Frontend-kode leveres fuldt ud til brugeren og kan altid inspiceres via:
View Source
DevTools → Sources
Network tab
Derfor var credentials ikke hemmelige.
Angrebet
Jeg brugte de fundne credentials og loggede ind via login-formen:
| |
Login lykkedes uden yderligere beskyttelse.
Flaget
Efter succesfuldt login blev flaget vist:
| |
Konklusion
Jeg demonstrerede, at applikationen ikke implementerede reel adgangskontrol.
Admin-credentials var hardcoded i JavaScript og kunne tilgås via View Source.
Applikationen var et klassisk eksempel på “trust me bro”-sikkerhed.
Flag:
| |