Sicherheitslücke bei Profilen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Sicherheitslücke bei Profilen

      Durch manipulieren der gesendet Post-Daten beim Ändern des Profiles kann man beliebige Profilfelder wie Punkte, Onlinezeit etc. ändern.

      Könnte ja jemand mal nen Bugfix schreiben...


      btw: Status, also group und nick etc. kann man nicht ändern. Diese Felder werden auf die Rechte abgefragt.


      Hf :P

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Aggy“ ()

      Du kannst die Datei Sources/Modifyprofile.pm dahingehend verändern, dass mitgesendete Eingaben als Zugriffsfehler ausgelegt werden. Erweitere dazu einfach folgende Zeile:

      Quellcode

      1. $main->fatal_error('profile_nopermission') if ($user->{name} ne $main->{current_user}{name} && (!$main->hasPermission('profile_modify') || $main->{current_user}{tempgroup}<=$user->{group}));


      Du musst hier mit $main->{input} weiter arbeiten z.b. $main->{input}{gender} usw.
      ein datenbank eintrag mit dem vollkommenen code der das ausbügelt wäre für die ein oder anderen sehr hilfreich. ;) Soll jetzt keine Aufforderung sein aber wäre wirklich gut da nicht jeder das bekanntlich machen kann und jeder iwo ja gerne sowas "sicher" haben wollen würde.
      Es gibt nur eine Lösung die schon aufwendig ist:

      Sources/ModifyProfile.pm öffnen und suchen nach:

      Quellcode

      1. $user->{lastlogin}=$olduser->{lastlogin};


      Und das dann weiterführen für alle weiteren Felder.
      Was nicht zuvergessen ist bei Feldern die zb. nur Admins ändern können müsstest du noch eine IF Abfrage einbauen.

      Und soweit ich weiß funktioniert das sowieso nur mit der entschlüsselten Version!!
      Naja... Fast ;) Also... Die ModifyProfile.pm (nur in der OpenSource Version vorhanden) öffnen und suchen nach:

      Quellcode

      1. my $user = $main->loadUser($main->{input}{name});


      Darunter einfügen:

      Quellcode

      1. $main->fatal_error('profile_nopermission') if ($main->{input}{points} || $main->{input}{onlinetime} || $main->{input}{hearts}........);


      So in etwa. Das Ganze muss natürlich noch erweitert werden und auch in den register Handler mit eingebracht werden (für neue Registrierungen).

      Abgefragt wird auch nur, ob die Inputzeile die Variable "points", "onlinetime", "hearts", etc. enthält. Nicht, ob diese leer sind, oder nicht.

      Theoretisch sollte das reichen, wobei das nur eine sog. "Quick and dirty"-Lösung ist. Es geht garantiert auch eleganter :)