EasyPark – Easy API abuse

Kort å greit, enda en kveld med MITM proxy + SSL certificate. Leker litt med “EasyPark” Android appen

Appen autoriserer mot sin API tjeneste via typiske GET og POST requests, (Heldigvis over HTTPS) og forventer JSON tilbake.

Det som derimot ikke er så flott er at denne autorisering er av typen “Basic access authentication” som foregår over HTTP/HTTPS, og etter hva min testing kan si meg har de implementert absolutt null inntreffende restriksjoner ved et høyt antall forespørsler. (SPAM is …ok…?)

Passordene appen/tjenesten tildeler hver bruker (Når du resetter passordet ) er på 8 alfabetiske “chars”, store og små, med tall og ingen spesialtegn, brukernavnet er telefonnummeret brukeren har registret.

Dette i seg selv er vell litt på “kanten” med tanke på at ganske så kraftige datamaskiner kan generere alle ulike kombinasjoner av denne syntaxen på litt over 21 timer (i følge http://random-ize.com/how-long-to-hack-pass/)

Men så lenge man ikke bestemt vet hvilke telefonnummerer finnes i databasen, er det jo vanskelig å gjette både kombinasjonen av brukernavn og passord.. eller?

Det viser seg nemlig at passord gjenopprettings systemet hos EasyPark er ganske så optimistisk til både bruk og input.

 

 

 

 

 

 

 

Alt du trenger å gjøre er å sende en GET request med nummeret du ønsker å gjenopprette passordet til ,som en enkelt parameter, fra hvor som helst, når som helst, hvor mange ganger du vil, uten noen som helst form for bekreftelse / verifikasjon. Om det finnes en bruker i databasen med dette nummeret vil de umiddelbart få tilsendt en sms med et nytt passord.

La oss si at du eksempelvis hadde laget et lite python script som grabbet norske offentlige telefonnummere fra Internett, og testet disse mot EasyPark passord recovery API’en. I tilfelle vil du ikke bare spammet alle Norges EasyPark kunder, men du vil også kunne generere en liste over mobilnummere som er registrert i databasen hos EasyPark, dette fordi responsen fra requesten så fint bekrefter om nummeret finnes i databasen eller ikke

 

 

 

 

 

 

 

Konklusjon?

Med de riktig midlene vi det ta maksimalt 21 timer å bryte seg inn på hvilken som helst EasyPark kontoen, så sant telefonnummerert ligger offentlig ute (Eller du via andre midler finner det)

 

Men… hva med å registrere parkeringsbilletter på andre brukere en deg selv?(aka free parking)

 

 

 

 

 

 

 

 

 

 

To be continued….. 😉

3,296 comments on “EasyPark – Easy API abuse