Christoffer Hoel

Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Men hvis Rudersdal selv drifter, hvorfor er der så institutioner på listen (se mit forrige indlæg) fra f.eks. Lyngby og Kalundborg?

11. juni 2015 kl. 16:27
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Tænk på hvor meget en robots.txt ville kunne hjælpe på "sikkerheden" af de her systemer.

Tjek f.eks. denne liste over institutioner i hele Storkøbenhavn (eller er det Sjælland?) http://brugerintra.rudersdal.dk/institutioner.aspx. Den er et godt udgangspunkt, hvis man har onde hensigter.

11. juni 2015 kl. 15:39
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Har du HTTP request-> response udskrift?

En ugyldig url giver det, f.eks. http://nemboern.herning.dk/AppV2/blah (se kilde-koden), men det kan man ikke bruge til så meget.

11. juni 2015 kl. 15:26
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Login foregår ukrypteret over http som almindelig form-data. Hvis et login fejler får man 500 Internal Server Error som svar med et stacktrace fra .NET:

  1. <LoginError>
  2. <Message>Fejl ved Login.</Message>
  3. <ErrorDetails>System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
  4. at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException) at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
  5. at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
  6. at System.Guid..ctor(String g) at Login.LoginUser(String login, String pass, String deviceid, String devicename, String url, String guid, String cvr, String appname, XmlDocument xmlresponse) in d:\iis\webSites\AppV2\Web\LogonGallery.ashx:line 294
  7. at Login.ProcessRequest(HttpContext context) in d:\iis\webSites\AppV2\Web\LogonGallery.ashx:line 164</ErrorDetails>
  8. </LoginError>

Hvordan kan man ignorere fejlsider som disse i et produktionsmiljø, This error page might contain sensitive information because ASP.NET is configured to show verbose error messages using ?

11. juni 2015 kl. 14:38
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Rudersdals system (NemBarn) er ikke lavet af Infoba, så vidt jeg ved.

Jeg har kun overfladisk kigget på "rene" requests. Ved ikke om jeg tør at kigge systemet nærmere i sømmene.

Der er vel også mulighed for "header-injektion", hvis ikke brugernavn/password bliver escaped.

11. juni 2015 kl. 13:44
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Gade F - vidste slet ikke, at man kunne komme så lang ned på skalaen :-(

11. juni 2015 kl. 13:34
Forældre fandt banale sikkerhedshuller i udbredt it-system til børnehaver

Jeg brugte 5 minutter med app'en fra min kommune (Rudersdal) og Charles Proxy. Her er hvad jeg fandt uden at kigge i dybden:

  • Opslag (f.eks. nyheder, madplaner) fra min søns institution er offentligt tilgængelige, hvis man har den rette url. Man vil kunne finde alle opslag ved at ændre på id parameteren. Siderne bliver i det mindste hentet https. Se screen short.

  • Billeder er også offentligt tilgængelige, hvis man har den rette url. Denne url indeholder modsat opslag "både" id og UserId. Med et simpelt script, ville man kunne downloade alle billeder fra hele systemet ved at ændre på begge parametre og evt. fjerne width for at få billeder i den original opløsning. Billederne bliver IKKE hentet via https. Se screen short.

  • API-kald indeholder både brugernavn og password som clear-text i headeren! Kaldene sker godt nok via SSL, men alle ved at dette er en dårlig ide. Se screen short.

Gad vide hvad man ellers kunne finde, hvis man gravede dybere?

Nu venter jeg bare på at blive politianmeldt...

11. juni 2015 kl. 12:04