Sicherheitslücke Kundengruppe?

Alle Fragen und Probleme zur aktuellen Randshop Version 2.3 können hier gepostet werden.

Moderatoren: Magnus, mmaass, ablass

Sicherheitslücke Kundengruppe?

Beitragvon Hopfenstopfer » Mo 18. Apr 2016, 07:02

Bei mir hat sich heute Nacht ein Kunde angemeldet (Standard Endkunde, den Status kann ich nur im Admin Bereich wechseln) und konnte seine Kundengruppe selbst wechseln (Hidden Field). Freundlicherweise hat er mich darauf hingewiesen:
Ich selbst habe noch nicht heraus gefunden, wie das funktionieren soll. Irgendwie bin ich schon verärgert...

Ihr Shop-System ist unsicher: Man kann die Kundengruppe beliebig wechseln, da ein Hidden-Feld unter "Meine Daten" ungeprüft benutzt wird. Dadurch sind alle Produkte der Kundengruppe sichtbar. Nach dem Hinzufügen bleiben die Produkte auch weiter im Warenkorb, wenn man die Kundengruppe wieder zurückstellt.


Ich habe jetzt versucht in themes/user/grunddaten und registrieren sowie in in den templates ..../user/registrieren und grunddaten entsprechende Einträge zu entfernen.....
Hopfenstopfer
 
Beiträge: 32
Registriert: Mo 4. Apr 2016, 08:15

Re: Sicherheitslücke Kundengruppe?

Beitragvon Martens » Mo 18. Apr 2016, 16:29

Ui, stimmt, das geht tatsächlich. Danke für den Hinweis. Ich habe aber schon eine Idee, wie sich das beheben lässt und sage dann, ob und wie ich es geklappt hat.

Grüße
Martin
„Die Natur ergreift immer die Partei des versteckten Fehlers.“
Eines von Murphys Gesetzen
Martens
 
Beiträge: 343
Registriert: Mo 9. Feb 2009, 22:09

Re: Sicherheitslücke Kundengruppe?

Beitragvon Martens » Mo 18. Apr 2016, 19:48

Hallo,

ich habe hier mal ein paar Codeschnipsel, die abfragen, ob die vom Kunden übermittelte (und somit auch eventuell untergeschummelte) Kundengruppe von ihm selbst zugewiesen werden darf. Falls nicht, wird bei Neuregistrierung die Standard-Gruppe zugewiesen und bei Änderungen unter "Mein Konto" die zuletzt gespeicherte. Ich hoffe, dass es so funktioniert und ich nichts übersehen habe.
Das Problem betrifft auch ältere Randshop-Version, getestet habe ich das aber nur mit 2.4.

1.
In includes/functions.mod.kundengruppen.inc.php folgende Funktion irgendwo zwischen zwei anderen Funktionen einfügen, also in den Zeilen zwischen dem schließenden "}" und "function":
Code: Alles auswählen
function GetKundengruppeWaehlbar($id) {

   $SQLString = "SELECT * FROM " . TABLE_KUNDENGRUPPEN . " WHERE " . TABLE_KUNDENGRUPPEN . ".kundenauswahl = 1 AND " . TABLE_KUNDENGRUPPEN . ".id = " . $id;
   $QuerryInt = mysqli_num_rows(errorlogged_mysql_query($SQLString));
   
   return $QuerryInt;

}

Hiermit kann abgefragt werden, ob bei der betreffenden Kundengruppe im Admin das Häkchen bei "Auswahl durch den Kunden" gesetzt ist. Wenn es die Kundengruppe überhaupt nicht gibt, wird ebenfalls ein "Nein" zurückgegeben.

2.
In includes/functions.kunden.inc.php werden zwei Abfrag.n ergänzt:

2.1
Im Code nach "function RegistrierungKunden" suchen und in der Zeile unmittelbar hinter
Code: Alles auswählen
   // Kundengruppe abfragen
   if (!$Kundengruppe) {
      $Kundengruppe = GetDefaultKundengruppe();
   }

das hier einfügen:
Code: Alles auswählen
   // Prüfen, ob die übergebene Kundengruppe vom User selbst zugewiesen werden darf, ansonsten Standard-Kundengruppe
   if (!GetKundengruppeWaehlbar($Kundengruppe)) {
      $Kundengruppe = GetDefaultKundengruppe();
   }


2.2
Im Code nach "function SaveShopKundenGrunddaten" suchen und in der Zeile unmittelbar hinter
Code: Alles auswählen
   // Kundengruppe abfragen
   if (!$Kundengruppe) {
      $Kundengruppe = GetDefaultKundengruppe();
   }

das hier einfügen:
Code: Alles auswählen
   // Wenn die übergebene Kundengruppe vom User nicht selbst gewählt werden darf und von der bisherigen abweicht
   if (!GetKundengruppeWaehlbar($Kundengruppe) && $KundenObject->kundengruppe != $Kundengruppe) {
      // bisherige Kundengruppe verwenden
      $Kundengruppe = $KundenObject->kundengruppe;
   }


Grüße
Martin
„Die Natur ergreift immer die Partei des versteckten Fehlers.“
Eines von Murphys Gesetzen
Martens
 
Beiträge: 343
Registriert: Mo 9. Feb 2009, 22:09

Re: Sicherheitslücke Kundengruppe?

Beitragvon Hopfenstopfer » Mo 18. Apr 2016, 20:43

Vielen Dank für die Hilfe, ich habe aktuell die entsprechenden Codezeilen einfach entfernt, sobald ich Zeit habe, werde ich es mal probieren.
Hopfenstopfer
 
Beiträge: 32
Registriert: Mo 4. Apr 2016, 08:15

Re: Sicherheitslücke Kundengruppe?

Beitragvon Martens » Di 19. Apr 2016, 17:48

Hopfenstopfer hat geschrieben:… ich habe aktuell die entsprechenden Codezeilen einfach entfernt …


Das verhindert die Manipulationsmöglichkeit aber nicht, erschwert sie lediglich ein wenig. Das fehlende Formularfeld lässt sich genau so einfach einfügen, wie die Kundengruppen-ID. Man muss nur den Namen des Formularfeldes wissen.
Ich halte den Fehler zwar nicht für sehr sicherheitskritisch, aber wenn man sich so, wie es bei meinem Shop wäre, Zugriff auf die Händlerpreise verschaffen könnte, ist das schon etwas doof.

Grüße
Martin
„Die Natur ergreift immer die Partei des versteckten Fehlers.“
Eines von Murphys Gesetzen
Martens
 
Beiträge: 343
Registriert: Mo 9. Feb 2009, 22:09


Zurück zu Allgemeines / Installation / Hilfe

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 20 Gäste